lexer is limping through it. no arrays, poor numerical checking