This project expands the semantic analyzer to handle more complex rules, including:
- Variable scope and duplicate declarations
- Type mismatches in expressions and statements
- Rules for lists, switch statements, and arithmetic operators
- Detecting illegal narrowing conversions
The compiler produces detailed error messages after the line where each error occurs, helping catch both simple and advanced semantic issues.