mirror of
https://github.com/MorizzG/MLox.git
synced 2025-12-06 04:22:41 +00:00
1377 lines
23 KiB
Perl
1377 lines
23 KiB
Perl
$ for lox_file in *.lox **/*.lox; do
|
|
> mlox $lox_file || echo $lox_file failed
|
|
> done
|
|
unexpected_character.lox failed
|
|
string/unterminated.lox failed
|
|
|
|
|
|
|
|
file empty_file.lox
|
|
$ mlox empty_file.lox
|
|
|
|
|
|
file fib.lox
|
|
$ mlox fib.lox
|
|
9227465
|
|
|
|
|
|
file precedence.lox
|
|
$ mlox precedence.lox
|
|
14
|
|
8
|
|
4
|
|
0
|
|
true
|
|
true
|
|
true
|
|
true
|
|
0
|
|
0
|
|
0
|
|
0
|
|
4
|
|
|
|
|
|
file unexpected_character.lox
|
|
$ mlox unexpected_character.lox
|
|
found 1 LexerError:
|
|
LexerError at line 3, column 6: Unexpected character '|'
|
|
[1]
|
|
|
|
|
|
file assignment/associativity.lox
|
|
$ mlox assignment/associativity.lox
|
|
c
|
|
c
|
|
c
|
|
|
|
|
|
file assignment/global.lox
|
|
$ mlox assignment/global.lox
|
|
before
|
|
after
|
|
arg
|
|
arg
|
|
|
|
|
|
file assignment/grouping.lox
|
|
$ mlox assignment/grouping.lox
|
|
|
|
|
|
file assignment/infix_operator.lox
|
|
$ mlox assignment/infix_operator.lox
|
|
found 1 ParserError:
|
|
ParserError at line 3, column 6: Invalid assignment target
|
|
[1]
|
|
|
|
|
|
file assignment/local.lox
|
|
$ mlox assignment/local.lox
|
|
before
|
|
after
|
|
arg
|
|
arg
|
|
|
|
|
|
file assignment/prefix_operator.lox
|
|
$ mlox assignment/prefix_operator.lox
|
|
found 1 ParserError:
|
|
ParserError at line 2, column 3: Invalid assignment target
|
|
[1]
|
|
|
|
|
|
file assignment/syntax.lox
|
|
$ mlox assignment/syntax.lox
|
|
var
|
|
var
|
|
|
|
|
|
file assignment/to_this.lox
|
|
$ mlox assignment/to_this.lox
|
|
|
|
|
|
file assignment/undefined.lox
|
|
$ mlox assignment/undefined.lox
|
|
RuntimeError at line 1, column 8: tried to assign to undefined variable unknown
|
|
[1]
|
|
|
|
|
|
file block/empty.lox
|
|
$ mlox block/empty.lox
|
|
ok
|
|
|
|
|
|
file block/scope.lox
|
|
$ mlox block/scope.lox
|
|
inner
|
|
outer
|
|
|
|
|
|
file bool/equality.lox
|
|
$ 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
|
|
false
|
|
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
|
|
$ mlox call/bool.lox
|
|
|
|
|
|
file call/nil.lox
|
|
$ mlox call/nil.lox
|
|
|
|
|
|
file call/num.lox
|
|
$ mlox call/num.lox
|
|
|
|
|
|
file call/object.lox
|
|
$ mlox call/object.lox
|
|
|
|
|
|
file call/string.lox
|
|
$ mlox call/string.lox
|
|
|
|
|
|
file class/empty.lox
|
|
$ mlox class/empty.lox
|
|
|
|
|
|
file class/inherit_self.lox
|
|
$ mlox class/inherit_self.lox
|
|
|
|
|
|
file class/inherited_method.lox
|
|
$ mlox class/inherited_method.lox
|
|
|
|
|
|
file class/local_inherit_other.lox
|
|
$ mlox class/local_inherit_other.lox
|
|
|
|
|
|
file class/local_inherit_self.lox
|
|
$ mlox class/local_inherit_self.lox
|
|
|
|
|
|
file class/local_reference_self.lox
|
|
$ mlox class/local_reference_self.lox
|
|
|
|
|
|
file class/reference_self.lox
|
|
$ mlox class/reference_self.lox
|
|
|
|
|
|
file closure/assign_to_closure.lox
|
|
$ mlox closure/assign_to_closure.lox
|
|
|
|
|
|
file closure/assign_to_shadowed_later.lox
|
|
$ mlox closure/assign_to_shadowed_later.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file closure/nested_closure.lox
|
|
$ mlox closure/nested_closure.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file closure/unused_closure.lox
|
|
$ mlox closure/unused_closure.lox
|
|
|
|
|
|
file 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
|
|
$ mlox comments/only_line_comment.lox
|
|
|
|
|
|
file comments/only_line_comment_and_line.lox
|
|
$ mlox comments/only_line_comment_and_line.lox
|
|
|
|
|
|
file comments/unicode.lox
|
|
$ mlox comments/unicode.lox
|
|
ok
|
|
|
|
|
|
file constructor/arguments.lox
|
|
$ mlox constructor/arguments.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file constructor/default.lox
|
|
$ mlox constructor/default.lox
|
|
|
|
|
|
file constructor/default_arguments.lox
|
|
$ mlox constructor/default_arguments.lox
|
|
|
|
|
|
file constructor/early_return.lox
|
|
$ mlox constructor/early_return.lox
|
|
|
|
|
|
file constructor/extra_arguments.lox
|
|
$ mlox constructor/extra_arguments.lox
|
|
|
|
|
|
file constructor/init_not_method.lox
|
|
$ mlox constructor/init_not_method.lox
|
|
|
|
|
|
file constructor/missing_arguments.lox
|
|
$ mlox constructor/missing_arguments.lox
|
|
|
|
|
|
file constructor/return_in_nested_function.lox
|
|
$ mlox constructor/return_in_nested_function.lox
|
|
|
|
|
|
file constructor/return_value.lox
|
|
$ mlox constructor/return_value.lox
|
|
|
|
|
|
file continue/for.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
|
|
$ mlox expressions/evaluate.lox
|
|
|
|
|
|
file expressions/parse.lox
|
|
$ mlox expressions/parse.lox
|
|
|
|
|
|
file field/call_function_field.lox
|
|
$ mlox field/call_function_field.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file field/get_on_bool.lox
|
|
$ mlox field/get_on_bool.lox
|
|
|
|
|
|
file field/get_on_class.lox
|
|
$ mlox field/get_on_class.lox
|
|
|
|
|
|
file field/get_on_function.lox
|
|
$ mlox field/get_on_function.lox
|
|
|
|
|
|
file field/get_on_nil.lox
|
|
$ mlox field/get_on_nil.lox
|
|
|
|
|
|
file field/get_on_num.lox
|
|
$ mlox field/get_on_num.lox
|
|
|
|
|
|
file field/get_on_string.lox
|
|
$ mlox field/get_on_string.lox
|
|
|
|
|
|
file field/many.lox
|
|
$ mlox field/many.lox
|
|
|
|
|
|
file field/method.lox
|
|
$ mlox field/method.lox
|
|
|
|
|
|
file field/method_binds_this.lox
|
|
$ mlox field/method_binds_this.lox
|
|
|
|
|
|
file field/on_instance.lox
|
|
$ mlox field/on_instance.lox
|
|
|
|
|
|
file field/set_evaluation_order.lox
|
|
$ mlox field/set_evaluation_order.lox
|
|
|
|
|
|
file field/set_on_bool.lox
|
|
$ mlox field/set_on_bool.lox
|
|
|
|
|
|
file field/set_on_class.lox
|
|
$ mlox field/set_on_class.lox
|
|
|
|
|
|
file field/set_on_function.lox
|
|
$ mlox field/set_on_function.lox
|
|
|
|
|
|
file field/set_on_nil.lox
|
|
$ mlox field/set_on_nil.lox
|
|
|
|
|
|
file field/set_on_num.lox
|
|
$ mlox field/set_on_num.lox
|
|
|
|
|
|
file field/set_on_string.lox
|
|
$ mlox field/set_on_string.lox
|
|
|
|
|
|
file field/undefined.lox
|
|
$ mlox field/undefined.lox
|
|
|
|
|
|
file for/class_in_body.lox
|
|
$ mlox for/class_in_body.lox
|
|
|
|
|
|
file for/closure_in_body.lox
|
|
$ mlox for/closure_in_body.lox
|
|
|
|
|
|
file for/fun_in_body.lox
|
|
$ mlox for/fun_in_body.lox
|
|
|
|
|
|
file for/return_closure.lox
|
|
$ mlox for/return_closure.lox
|
|
|
|
|
|
file for/return_inside.lox
|
|
$ mlox for/return_inside.lox
|
|
|
|
|
|
file for/scope.lox
|
|
$ mlox for/scope.lox
|
|
0
|
|
-1
|
|
after
|
|
0
|
|
|
|
|
|
file for/statement_condition.lox
|
|
$ mlox for/statement_condition.lox
|
|
found 2 ParserErrors:
|
|
ParserError at line 3, column 16: Expected valid expression, got LeftBrace instead
|
|
ParserError at line 3, column 29: Expected Semicolon, but got RightParen
|
|
[1]
|
|
|
|
|
|
file for/statement_increment.lox
|
|
$ mlox for/statement_increment.lox
|
|
found 1 ParserError:
|
|
ParserError at line 2, column 23: Expected valid expression, got LeftBrace instead
|
|
[1]
|
|
|
|
file for/statement_initializer.lox
|
|
$ mlox for/statement_initializer.lox
|
|
found 2 ParserErrors:
|
|
ParserError at line 3, column 5: Expected valid expression, got LeftBrace instead
|
|
ParserError at line 3, column 25: Expected Semicolon, but got RightParen
|
|
[1]
|
|
|
|
|
|
file for/syntax.lox
|
|
$ mlox for/syntax.lox
|
|
|
|
|
|
file for/var_in_body.lox
|
|
$ mlox for/var_in_body.lox
|
|
found 1 ParserError:
|
|
ParserError at line 2, column 9: Expected valid expression, got Var instead
|
|
[1]
|
|
|
|
file function/body_must_be_block.lox
|
|
$ mlox function/body_must_be_block.lox
|
|
|
|
|
|
file function/empty_body.lox
|
|
$ mlox function/empty_body.lox
|
|
|
|
|
|
file function/extra_arguments.lox
|
|
$ mlox function/extra_arguments.lox
|
|
|
|
|
|
file function/local_mutual_recursion.lox
|
|
$ mlox function/local_mutual_recursion.lox
|
|
|
|
|
|
file function/local_recursion.lox
|
|
$ mlox function/local_recursion.lox
|
|
|
|
|
|
file function/missing_arguments.lox
|
|
$ mlox function/missing_arguments.lox
|
|
|
|
|
|
file function/missing_comma_in_parameters.lox
|
|
$ mlox function/missing_comma_in_parameters.lox
|
|
|
|
|
|
file function/mutual_recursion.lox
|
|
$ mlox function/mutual_recursion.lox
|
|
|
|
|
|
file function/nested_call_with_arguments.lox
|
|
$ mlox function/nested_call_with_arguments.lox
|
|
|
|
|
|
file function/parameters.lox
|
|
$ mlox function/parameters.lox
|
|
|
|
|
|
file function/print.lox
|
|
$ mlox function/print.lox
|
|
|
|
|
|
file function/recursion.lox
|
|
$ mlox function/recursion.lox
|
|
|
|
|
|
file function/too_many_arguments.lox
|
|
$ mlox function/too_many_arguments.lox
|
|
|
|
|
|
file function/too_many_parameters.lox
|
|
$ mlox function/too_many_parameters.lox
|
|
|
|
|
|
file if/class_in_else.lox
|
|
$ mlox if/class_in_else.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file inheritance/inherit_from_function.lox
|
|
$ mlox inheritance/inherit_from_function.lox
|
|
|
|
|
|
file inheritance/inherit_from_nil.lox
|
|
$ mlox inheritance/inherit_from_nil.lox
|
|
|
|
|
|
file inheritance/inherit_from_number.lox
|
|
$ mlox inheritance/inherit_from_number.lox
|
|
|
|
|
|
file inheritance/inherit_methods.lox
|
|
$ mlox inheritance/inherit_methods.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file limit/loop_too_large.lox
|
|
$ mlox limit/loop_too_large.lox
|
|
|
|
|
|
file limit/no_reuse_constants.lox
|
|
$ mlox limit/no_reuse_constants.lox
|
|
|
|
|
|
file limit/stack_overflow.lox
|
|
$ mlox limit/stack_overflow.lox
|
|
|
|
|
|
file limit/too_many_constants.lox
|
|
$ mlox limit/too_many_constants.lox
|
|
|
|
|
|
file limit/too_many_locals.lox
|
|
$ mlox limit/too_many_locals.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file method/empty_block.lox
|
|
$ mlox method/empty_block.lox
|
|
|
|
|
|
file method/extra_arguments.lox
|
|
$ mlox method/extra_arguments.lox
|
|
|
|
|
|
file method/missing_arguments.lox
|
|
$ mlox method/missing_arguments.lox
|
|
|
|
|
|
file method/not_found.lox
|
|
$ mlox method/not_found.lox
|
|
|
|
|
|
file method/print_bound_method.lox
|
|
$ mlox method/print_bound_method.lox
|
|
|
|
|
|
file method/refer_to_name.lox
|
|
$ mlox method/refer_to_name.lox
|
|
|
|
|
|
file method/too_many_arguments.lox
|
|
$ mlox method/too_many_arguments.lox
|
|
|
|
|
|
file 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
|
|
$ mlox 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
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file 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
|
|
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
|
|
|
|
|
|
file regression/394.lox
|
|
$ mlox regression/394.lox
|
|
|
|
|
|
file return/after_else.lox
|
|
$ mlox return/after_else.lox
|
|
|
|
|
|
file return/after_if.lox
|
|
$ mlox return/after_if.lox
|
|
|
|
|
|
file return/after_while.lox
|
|
$ mlox return/after_while.lox
|
|
|
|
|
|
file return/at_top_level.lox
|
|
$ mlox return/at_top_level.lox
|
|
|
|
|
|
file return/in_function.lox
|
|
$ mlox return/in_function.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file scanning/identifiers.lox
|
|
$ mlox scanning/identifiers.lox
|
|
|
|
|
|
file scanning/keywords.lox
|
|
$ mlox scanning/keywords.lox
|
|
|
|
|
|
file scanning/numbers.lox
|
|
$ mlox scanning/numbers.lox
|
|
|
|
|
|
file scanning/punctuators.lox
|
|
$ mlox scanning/punctuators.lox
|
|
|
|
|
|
file scanning/strings.lox
|
|
$ mlox scanning/strings.lox
|
|
|
|
|
|
file 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
|
|
$ mlox string/unterminated.lox
|
|
found 1 LexerError:
|
|
LexerError at line 2, column 0: Unterminated string literal
|
|
[1]
|
|
|
|
|
|
file super/bound_method.lox
|
|
$ mlox super/bound_method.lox
|
|
|
|
|
|
file super/call_other_method.lox
|
|
$ mlox super/call_other_method.lox
|
|
|
|
|
|
file super/call_same_method.lox
|
|
$ mlox super/call_same_method.lox
|
|
|
|
|
|
file super/closure.lox
|
|
$ mlox super/closure.lox
|
|
|
|
|
|
file super/constructor.lox
|
|
$ mlox super/constructor.lox
|
|
|
|
|
|
file super/extra_arguments.lox
|
|
$ mlox super/extra_arguments.lox
|
|
|
|
|
|
file super/indirectly_inherited.lox
|
|
$ mlox super/indirectly_inherited.lox
|
|
|
|
|
|
file super/missing_arguments.lox
|
|
$ mlox super/missing_arguments.lox
|
|
|
|
|
|
file super/no_superclass_bind.lox
|
|
$ mlox super/no_superclass_bind.lox
|
|
|
|
|
|
file super/no_superclass_call.lox
|
|
$ mlox super/no_superclass_call.lox
|
|
|
|
|
|
file super/no_superclass_method.lox
|
|
$ mlox super/no_superclass_method.lox
|
|
|
|
|
|
file super/parenthesized.lox
|
|
$ mlox super/parenthesized.lox
|
|
|
|
|
|
file super/reassign_superclass.lox
|
|
$ mlox super/reassign_superclass.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file super/super_without_dot.lox
|
|
$ mlox super/super_without_dot.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file this/closure.lox
|
|
$ mlox this/closure.lox
|
|
|
|
|
|
file this/nested_class.lox
|
|
$ mlox this/nested_class.lox
|
|
|
|
|
|
file this/nested_closure.lox
|
|
$ mlox this/nested_closure.lox
|
|
|
|
|
|
file 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
|
|
|
|
|
|
file 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
|
|
|
|
|
|
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
|
|
|
|
|
|
file 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
|
|
|
|
|
|
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
|
|
|
|
|
|
file while/closure_in_body.lox
|
|
$ mlox while/closure_in_body.lox
|
|
|
|
|
|
file while/fun_in_body.lox
|
|
$ mlox while/fun_in_body.lox
|
|
|
|
|
|
file while/return_closure.lox
|
|
$ mlox while/return_closure.lox
|
|
|
|
|
|
file while/return_inside.lox
|
|
$ mlox while/return_inside.lox
|
|
|
|
|
|
file while/syntax.lox
|
|
$ mlox while/syntax.lox
|
|
1
|
|
2
|
|
3
|
|
0
|
|
1
|
|
2
|
|
|
|
|
|
file while/var_in_body.lox
|
|
$ mlox while/var_in_body.lox
|
|
found 1 ParserError:
|
|
ParserError at line 2, column 13: Expected valid expression, got Var instead
|
|
[1]
|
|
|
|
|