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 |
0 |
0 |
0 |
0 |
Pass |
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 |
0 |
0 |
0 |
0 |
Pass |
print_i |
sem |
0 |
0 |
0 |
0 |
Pass |
print_c |
sem |
0 |
0 |
0 |
0 |
Pass |
read_i |
sem |
0 |
0 |
0 |
0 |
Pass |
read_c |
sem |
0 |
0 |
0 |
0 |
Pass |
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 |