added a real lexer as opposed to the half assed scanner from before. still awkwardness with single quotes, but closer