<aside> <img src="/icons/info-alternate_green.svg" alt="/icons/info-alternate_green.svg" width="40px" />
We developed a Language Processor from scratch in Python, which analyzes source code files and outputs tokens, parse trees, symbol tables, and error reports. The project also includes a graphical interface for enhanced user interaction.
</aside>
This project was developed by a group of three for the Language Processors module in the 3rd year of the BSc in Computer Engineering
In this project, we built a Language Processor that reads a source code file, performs lexical, syntactic, and semantic analysis, and generates several output files: a list of tokens, a symbol table, parsing rules, and detected errors. The processor was designed to help in debugging by providing detailed outputs for each stage of analysis. The Lexer generates tokens from the source code, the Semantic Analyzer checks for meaning and correctness, and the LR1 Parser builds the parse tree using the generated tokens and symbol tables.
The processor also includes error handling, where it identifies lexical, syntactic, and semantic errors and provides clear, user-friendly error messages with line numbers and explanations for correction. Additionally, the project supports the visualization of syntax trees using VASt, a mandatory tool for displaying the parsed trees in a structured manner.
A key feature of the project was that it was developed without using any pre-built libraries for language processing, relying entirely on Python to implement each module. We also integrated a custom graphical user interface (GUI) to improve user interaction with the processor.