try out flex/bison approach