clear memory footprint when codegen complete
This commit is contained in:
parent
64961877de
commit
b1a5a5f6c0
14
main.cpp
14
main.cpp
|
@ -37,6 +37,16 @@ void die(std::string stage,std::string filename)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void clear()
|
||||||
|
{
|
||||||
|
// this will clear the data in lexer/parser/import modules
|
||||||
|
// to reduce memory footprint
|
||||||
|
lexer.get_token_list().clear();
|
||||||
|
parse.get_root().clear();
|
||||||
|
import.get_root().clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
void lex_func()
|
void lex_func()
|
||||||
{
|
{
|
||||||
lexer.openfile(inputfile);
|
lexer.openfile(inputfile);
|
||||||
|
@ -47,6 +57,7 @@ void lex_func()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
lexer.print_token();
|
lexer.print_token();
|
||||||
|
clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,6 +78,7 @@ void ast_print()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
parse.get_root().print_ast(0);
|
parse.get_root().print_ast(0);
|
||||||
|
clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,6 +105,7 @@ void show_bytecode()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
code_generator.main_progress(import.get_root());
|
code_generator.main_progress(import.get_root());
|
||||||
|
clear();
|
||||||
code_generator.print_byte_code();
|
code_generator.print_byte_code();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -120,6 +133,7 @@ void execute()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
code_generator.main_progress(import.get_root());
|
code_generator.main_progress(import.get_root());
|
||||||
|
clear();
|
||||||
vm.run(
|
vm.run(
|
||||||
code_generator.get_string_table(),
|
code_generator.get_string_table(),
|
||||||
code_generator.get_number_table(),
|
code_generator.get_number_table(),
|
||||||
|
|
Loading…
Reference in New Issue