Lexer now detects keywords (if, else, elsif, let, end, etc.)