This project implements a parser for a simple imperative programming language using Racket. It is designed to demonstrate basic concepts of programming language design, including parsing, tokenization, and the evaluation of expressions and statements. The parser supports conditional statements, assignments, arithmetic expressions, and subroutine calls.
- Parsing Expressions: Supports identifiers, numbers, and proper use of parentheses for precedence.
- Handling Statements: Includes assignments, conditional statements (
if-then
), input/output operations (read
,write
), and control flow changes (goto
,gosub
,return
). - Tokenization: Recognizes and categorizes keywords, symbols, and operators for parsing.
- Line-by-Line Evaluation: Processes each line of the input file separately.
- Racket programming language: Make sure you have Racket installed on your system. You can download it from https://racket-lang.org/.
This project is licensed under the MIT License - see the LICENSE file for details.