separated test.c into files lexer.c, lexer.h and test.c