This project implements a simple front-end for a custom programming language, consisting of a lexical analyzer (lexer) and a recursive descent parser. The lexer reads an input stream and tokenizes it into meaningful units such as keywords, operators, numbers, and identifiers. The parser then processes these tokens according to the grammar rules of the language, validating the structure of constructs like assignments, conditionals, loops, and switch-c