there are lots of places in which the program doesn't free the allocated memory properly (esp `lexer.c`). let's fix them at some point. 
there are lots of places in which the program doesn't free the allocated memory properly (esp
lexer.c). let's fix them at some point.