| Test name | Component | Compiler exit code | Expected compiler exit code | Program exit code | Expected program exit code | Result |
| fibonacci |
lexer |
0 |
0 |
0 |
0 |
Pass |
| int |
lexer |
0 |
0 |
0 |
0 |
Pass |
| intintint |
lexer |
0 |
0 |
0 |
0 |
Pass |
| single_comment |
lexer |
0 |
0 |
0 |
0 |
Pass |
| multi_comment |
lexer |
0 |
0 |
0 |
0 |
Pass |
| nested_comments |
lexer |
0 |
0 |
0 |
0 |
Pass |
| all_tokens |
lexer |
0 |
0 |
0 |
0 |
Pass |
| escape_codes_1 |
lexer |
0 |
0 |
0 |
0 |
Pass |
| escape_codes_2 |
lexer |
250 |
250 |
0 |
0 |
Pass |
| multiple_characters_in_single_quotes |
lexer |
250 |
250 |
0 |
0 |
Pass |
| char_assign_digits |
lexer |
250 |
250 |
0 |
0 |
Pass |
| most_chars |
lexer |
0 |
0 |
0 |
0 |
Pass |
| no_main |
lexer |
0 |
0 |
0 |
0 |
Pass |
| minimal |
lexer |
0 |
0 |
0 |
0 |
Pass |
| undefined_token |
lexer |
250 |
250 |
0 |
0 |
Pass |
| identifiers |
lexer |
0 |
0 |
0 |
0 |
Pass |
| includes |
lexer |
0 |
0 |
0 |
0 |
Pass |
| preprocessing |
lexer |
250 |
250 |
0 |
0 |
Pass |
| empty |
lexer |
0 |
0 |
0 |
0 |
Pass |
| division |
lexer |
0 |
0 |
0 |
0 |
Pass |
| fibonacci |
parser |
0 |
0 |
0 |
0 |
Pass |
| int |
parser |
245 |
245 |
0 |
0 |
Pass |
| single_comment |
parser |
0 |
0 |
0 |
0 |
Pass |
| multi_comment |
parser |
0 |
0 |
0 |
0 |
Pass |
| nested_comments |
parser |
245 |
245 |
0 |
0 |
Pass |
| escape_codes_1 |
parser |
0 |
0 |
0 |
0 |
Pass |
| most_chars |
parser |
0 |
0 |
0 |
0 |
Pass |
| no_main |
parser |
245 |
245 |
0 |
0 |
Pass |
| minimal |
parser |
0 |
0 |
0 |
0 |
Pass |
| just_main |
parser |
245 |
245 |
0 |
0 |
Pass |
| identifiers |
parser |
0 |
0 |
0 |
0 |
Pass |
| includes |
parser |
0 |
0 |
0 |
0 |
Pass |
| empty |
parser |
0 |
0 |
0 |
0 |
Pass |
| while_loop_1 |
parser |
0 |
0 |
0 |
0 |
Pass |
| while_loop_2 |
parser |
0 |
0 |
0 |
0 |
Pass |
| while_loop_3 |
parser |
245 |
245 |
0 |
0 |
Pass |
| unterminated_stmt |
parser |
245 |
245 |
0 |
0 |
Pass |
| function_application_1 |
parser |
245 |
245 |
0 |
0 |
Pass |
| function_application_2 |
parser |
0 |
0 |
0 |
0 |
Pass |
| function_application_3 |
parser |
0 |
0 |
0 |
0 |
Pass |
| function_application_4 |
parser |
245 |
245 |
0 |
0 |
Pass |
| function_application_5 |
parser |
0 |
0 |
0 |
0 |
Pass |
| count_to_n |
parser |
0 |
0 |
0 |
0 |
Pass |
| declarations |
parser |
0 |
0 |
0 |
0 |
Pass |
| missing_declarations |
parser |
0 |
0 |
0 |
0 |
Pass |
| double_declarations |
parser |
0 |
0 |
0 |
0 |
Pass |
| reserved_keyword_as_identifier |
parser |
245 |
245 |
0 |
0 |
Pass |
| program_ends_with_single_comment |
parser |
0 |
0 |
0 |
0 |
Pass |
| empty_functions_1 |
parser |
0 |
0 |
0 |
0 |
Pass |
| empty_functions_2 |
parser |
0 |
0 |
0 |
0 |
Pass |
| empty_comparison |
parser |
245 |
245 |
0 |
0 |
Pass |
| else_if |
parser |
0 |
0 |
0 |
0 |
Pass |
| arithmetic_1 |
parser |
0 |
0 |
0 |
0 |
Pass |
| arithmetic_2 |
parser |
0 |
0 |
0 |
0 |
Pass |
| broken_arithmetic |
parser |
245 |
245 |
0 |
0 |
Pass |
| assignment_error |
parser |
245 |
245 |
0 |
0 |
Pass |
| all_syntax_categories |
parser |
0 |
0 |
0 |
0 |
Pass |
| all_syntax_categories_with_spaces |
parser |
0 |
0 |
0 |
0 |
Pass |
| all_syntax_categories_compact |
parser |
0 |
0 |
0 |
0 |
Pass |
| type_error |
parser |
0 |
0 |
0 |
0 |
Pass |
| identifier_missing_type |
parser |
245 |
245 |
0 |
0 |
Pass |
| nested_conditional_statements |
parser |
0 |
0 |
0 |
0 |
Pass |
| empty_conditional |
parser |
245 |
245 |
0 |
0 |
Pass |
| if_empty_body |
parser |
0 |
0 |
0 |
0 |
Pass |
| statements_as_expressions |
parser |
245 |
245 |
0 |
0 |
Pass |
| deep_body_nesting |
parser |
0 |
0 |
0 |
0 |
Pass |
| variable_initialization |
parser |
245 |
245 |
0 |
0 |
Pass |
| returning_multiple_times |
parser |
0 |
0 |
0 |
0 |
Pass |
| else |
parser |
245 |
245 |
0 |
0 |
Pass |
| struct_wrong |
parser |
245 |
245 |
0 |
0 |
Pass |
| struct_usage |
parser |
0 |
0 |
0 |
0 |
Pass |
| struct_declaration |
parser |
0 |
0 |
0 |
0 |
Pass |
| ternary_comparison |
parser |
0 |
0 |
0 |
0 |
Pass |
| pointer_pointer |
parser |
0 |
0 |
0 |
0 |
Pass |
| type_cast |
parser |
245 |
245 |
0 |
0 |
Pass |
| Test name | Component | Compiler exit code | Expected compiler exit code | Program exit code | Expected program exit code | Result |
| fibonacci |
ast |
0 |
0 |
0 |
0 |
Pass |
| arithmetics |
ast |
0 |
0 |
0 |
0 |
Pass |
| arithmetics_plus |
ast |
0 |
0 |
0 |
0 |
Pass |
| arithmetics_plus_mul |
ast |
0 |
0 |
0 |
0 |
Pass |
| arithmetics_parentheses |
ast |
0 |
0 |
0 |
0 |
Pass |
| arithmetics_modulo |
ast |
0 |
0 |
0 |
0 |
Pass |
| arithmetics_division |
ast |
0 |
0 |
0 |
0 |
Pass |
| unary_operator_1 |
ast |
0 |
0 |
0 |
0 |
Pass |
| unary_operator_2 |
ast |
0 |
0 |
0 |
0 |
Pass |
| function_call_1 |
ast |
0 |
0 |
0 |
0 |
Pass |
| function_call_2 |
ast |
0 |
0 |
0 |
0 |
Pass |
| return_1 |
ast |
0 |
0 |
0 |
0 |
Pass |
| return_2 |
ast |
0 |
0 |
0 |
0 |
Pass |
| return_3 |
ast |
0 |
0 |
0 |
0 |
Pass |
| return_4 |
ast |
0 |
0 |
0 |
0 |
Pass |
| nested_blocks_1 |
ast |
0 |
0 |
0 |
0 |
Pass |
| nested_blocks_2 |
ast |
0 |
0 |
0 |
0 |
Pass |
| blocks_in_sequence |
ast |
0 |
0 |
0 |
0 |
Pass |
| assignment_1 |
ast |
0 |
0 |
0 |
0 |
Pass |
| assignment_2 |
ast |
0 |
0 |
0 |
0 |
Pass |
| print_s |
ast |
0 |
0 |
0 |
0 |
Pass |
| read_c_1 |
ast |
0 |
0 |
0 |
0 |
Pass |
| read_c_2 |
ast |
0 |
0 |
0 |
0 |
Pass |
| read_i_1 |
ast |
0 |
0 |
0 |
0 |
Pass |
| read_i_2 |
ast |
0 |
0 |
0 |
0 |
Pass |
| print_c |
ast |
0 |
0 |
0 |
0 |
Pass |
| print_i |
ast |
0 |
0 |
0 |
0 |
Pass |
| while_loop |
ast |
0 |
0 |
0 |
0 |
Pass |
| while_forever |
ast |
0 |
0 |
0 |
0 |
Pass |
| if |
ast |
0 |
0 |
0 |
0 |
Pass |
| if_else |
ast |
0 |
0 |
0 |
0 |
Pass |
| if_else_if_else |
ast |
0 |
0 |
0 |
0 |
Pass |
| if_if_else |
ast |
0 |
0 |
0 |
0 |
Pass |
| procedure_declaration_1 |
ast |
0 |
0 |
0 |
0 |
Pass |
| procedure_declaration_2 |
ast |
0 |
0 |
0 |
0 |
Pass |
| procedure_declarations |
ast |
0 |
0 |
0 |
0 |
Pass |
| global_variable_declaration |
ast |
0 |
0 |
0 |
0 |
Pass |
| global_variable_declarations |
ast |
0 |
0 |
0 |
0 |
Pass |
| local_variable_declaration |
ast |
0 |
0 |
0 |
0 |
Pass |
| local_variable_declarations |
ast |
0 |
0 |
0 |
0 |
Pass |
| includes |
ast |
0 |
0 |
0 |
0 |
Pass |
| minimal |
ast |
0 |
0 |
0 |
0 |
Pass |
| struct_use |
ast |
0 |
0 |
0 |
0 |
Pass |
| strliteral |
ast |
0 |
0 |
0 |
0 |
Pass |
| pointers_and_arrays_and_structs |
ast |
245 |
0 |
0 |
0 |
Fail |
| struct_decl |
ast |
0 |
0 |
0 |
0 |
Pass |
| minimal |
sem |
0 |
0 |
0 |
0 |
Pass |
| global_declaration_1 |
sem |
0 |
0 |
0 |
0 |
Pass |
| duplicate_global_declarations_1 |
sem |
240 |
240 |
0 |
0 |
Pass |
| duplicate_global_declarations_2 |
sem |
240 |
240 |
0 |
0 |
Pass |
| many_duplicate_global_declarations |
sem |
240 |
240 |
0 |
0 |
Pass |
| global_shadowing_1 |
sem |
0 |
0 |
0 |
0 |
Pass |
| global_shadowing_2 |
sem |
0 |
0 |
0 |
0 |
Pass |
| global_shadowing_3 |
sem |
240 |
240 |
0 |
0 |
Pass |
| global_shadowing_4 |
sem |
0 |
0 |
0 |
0 |
Pass |
| global_shadowing_5 |
sem |
240 |
240 |
0 |
0 |
Pass |
| local_shadowing_1 |
sem |
0 |
0 |
0 |
0 |
Pass |
| local_shadowing_2 |
sem |
0 |
0 |
0 |
0 |
Pass |
| mutual_recursion |
sem |
240 |
240 |
0 |
0 |
Pass |
| undeclared_function_1 |
sem |
240 |
240 |
0 |
0 |
Pass |
| undeclared_function_2 |
sem |
240 |
240 |
0 |
0 |
Pass |
| undeclared_parameter |
sem |
240 |
240 |
0 |
0 |
Pass |
| print_s |
sem |
240 |
0 |
0 |
0 |
Fail |
| print_i |
sem |
0 |
0 |
0 |
0 |
Pass |
| print_c |
sem |
0 |
0 |
0 |
0 |
Pass |
| read_i |
sem |
240 |
0 |
0 |
0 |
Fail |
| read_c |
sem |
240 |
0 |
0 |
0 |
Fail |
| global_variable_assignment_1 |
sem |
0 |
0 |
0 |
0 |
Pass |
| global_variable_assignment_2 |
sem |
240 |
240 |
0 |
0 |
Pass |
| local_variable_assignment_1 |
sem |
0 |
0 |
0 |
0 |
Pass |
| local_variable_assignment_2 |
sem |
240 |
240 |
0 |
0 |
Pass |
| void_variable |
sem |
240 |
240 |
0 |
0 |
Pass |
| main_return_1 |
sem |
0 |
0 |
0 |
0 |
Pass |
| main_return_2 |
sem |
240 |
240 |
0 |
0 |
Pass |
| arity_mismatch_1 |
sem |
240 |
240 |
0 |
0 |
Pass |
| arity_mismatch_2 |
sem |
240 |
240 |
0 |
0 |
Pass |
| function_returns_1 |
sem |
0 |
0 |
0 |
0 |
Pass |
| function_returns_2 |
sem |
240 |
240 |
0 |
0 |
Pass |
| arithmetics_1 |
sem |
0 |
0 |
0 |
0 |
Pass |
| arithmetics_2 |
sem |
240 |
240 |
0 |
0 |
Pass |
| arithmetics_3 |
sem |
240 |
240 |
0 |
0 |
Pass |
| function_call_1 |
sem |
240 |
240 |
0 |
0 |
Pass |
| function_call_2 |
sem |
0 |
0 |
0 |
0 |
Pass |
| conditional_1 |
sem |
240 |
240 |
0 |
0 |
Pass |
| conditional_2 |
sem |
240 |
240 |
0 |
0 |
Pass |
| conditional_3 |
sem |
240 |
240 |
0 |
0 |
Pass |
| conditional_4 |
sem |
240 |
240 |
0 |
0 |
Pass |
| shadowing_6 |
sem |
0 |
0 |
0 |
0 |
Pass |
| shadowing_7 |
sem |
0 |
0 |
0 |
0 |
Pass |
| shadowing_8 |
sem |
0 |
0 |
0 |
0 |
Pass |
| shadowing_9 |
sem |
0 |
0 |
0 |
0 |
Pass |
| shadowing_10 |
sem |
240 |
240 |
0 |
0 |
Pass |
| shadowing_11 |
sem |
240 |
240 |
0 |
0 |
Pass |
| shadowing_12 |
sem |
240 |
240 |
0 |
0 |
Pass |
| Test name | Component | Compiler exit code | Expected compiler exit code | Program exit code | Expected program exit code | Result |
| array_complex_reduction_8 |
regalloc |
240 |
0 |
0 |
0 |
Fail |
| arithmetic_chain_short_hoisted |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| balanced_arithmetic_tree_large |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| arithmetic_chains_long |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| balanced_addition_tree_small_hoisted |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| array_simple_reduction_1 |
regalloc |
240 |
0 |
0 |
0 |
Fail |
| array_complex_reduction_2 |
regalloc |
240 |
0 |
0 |
0 |
Fail |
| array_complex_reduction_3 |
regalloc |
240 |
0 |
0 |
0 |
Fail |
| balanced_arithmetic_tree_small_hoisted |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| array_complex_reduction_12 |
regalloc |
240 |
0 |
0 |
0 |
Fail |
| arithmetic_chains_short_hoisted |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| arithmetic_chain_long_hoisted |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| array_simple_reduction_4 |
regalloc |
240 |
0 |
0 |
0 |
Fail |
| balanced_addition_tree_large_hoisted |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| array_complex_reduction_4 |
regalloc |
240 |
0 |
0 |
0 |
Fail |
| array_complex_reduction_6 |
regalloc |
240 |
0 |
0 |
0 |
Fail |
| addition_chain_long |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| arithmetic_chains_short |
regalloc |
230 |
0 |
0 |
0 |
Fail |
| array_multiplication_table_sum |
regalloc |
240 |
0 |
0 |
0 |
Fail |
| array_simple_reduction_2 |
regalloc |
240 |
0 |
0 |
0 |
Fail |