Wah Ya-Saeidi Compiler is a comprehensive educational and practical compiler project designed to parse, analyze, and execute custom language syntax. It features a powerful compiler engine built from the ground up using C# and .NET Core. To provide an accessible and interactive development experience, the project includes a sleek React frontend communicating with the compiler engine via a lightweight .NET Minimal API.
Whether you're exploring language design, testing compiler optimization, or looking for an interactive IDE like experience in the browser, Wah Ya-Saeidi delivers a full-stack solution.
Architecture & System Flow
The project is structured as a full-stack application divided into three main operational layers:
1. Frontend (React):
Acts as an interactive Integrated Development Environment (IDE).
Captures user code input and displays real-time compilation results, syntax errors, and outputs.
2. API Layer (.NET Minimal API):
Serves as the bridge between the client and the core compiler engine.
Receives source code payloads from the frontend, orchestrates the compilation pipeline, and returns structured JSON responses detailing success, errors, or execution output.
3. Core Compiler Engine (C# & .NET Core):
Lexical Analysis (Scanner): Tokenizes the raw source code.
Syntax Analysis (Parser): Validates the token sequence against the language grammar to build an Abstract Syntax Tree (AST).
Semantic Analysis: Checks for type safety, variable scoping, and logical correctness.
Code Generation / Execution: Processes the AST to generate intermediate code or directly execute the logic.
Built With
Backend & Compiler Engine: C#, .NET Core
Web Service: ASP.NET Core Minimal APIs
Frontend UI: React.js
Tooling & Services: Data Structures, Custom Lexers & Parsers