First pass at a lexer
Replace old parser