[FEAT] Now unreachable code is only a warning

[FIX] Removed 'decompiled.txt' from repo
This commit is contained in:
2021-05-05 17:51:32 +02:00
parent b40e234013
commit f1c1b3e396
6 changed files with 24 additions and 31 deletions

View File

@@ -762,22 +762,23 @@ static void parse_call() {
static const bool parse_statements() {
bool return_called = false;
bool local_return = false;
bool already_warned = false;
while (!parser_finished) {
current_line = tkn_get_line();
switch (tkn_get_token()) {
case TOKEN_CONST:
tkn_next();
if (local_return) HALT2("Unreachable code");
if (local_return && !already_warned) { error_warning("Unreachable code"); already_warned = true; }
parse_const();
break;
case TOKEN_VAR:
tkn_next();
if (local_return) HALT2("Unreachable code");
if (local_return && !already_warned) { error_warning("Unreachable code"); already_warned = true; }
parse_var();
break;
case TOKEN_IF:
tkn_next();
if (local_return) HALT2("Unreachable code");
if (local_return && !already_warned) { error_warning("Unreachable code"); already_warned = true; }
if (parse_if()) { return_called = true; } break;
/*
case TOKEN_FOR:
@@ -789,7 +790,7 @@ static const bool parse_statements() {
*/
case TOKEN_RETURN:
tkn_next();
if (local_return) HALT2("Unreachable code");
if (local_return && !already_warned) { error_warning("Unreachable code"); already_warned = true; }
parse_return();
local_return = return_called = true;
break;
@@ -875,6 +876,7 @@ void parser_parse(const char* buffer, byte* mem) {
//emmit(OP_JMP);
//emmit_w(0xA000);
} else {
error_print_warnings();
decompiler_save(code, codepos);
}