Poram++ DSL Compiler

Poram++ is a domain-specific language compiler written in C that parses structured form definitions and compiles them into clean HTML forms.
How it started
This project began as a university assignment for a Programming Paradigms module. The requirement was to design a domain-specific language that modeled structured data. I chose to create a declarative language for describing web forms and generating the corresponding HTML.
The initial submission worked, but it had bare-bones grammar and limited styling options. During the semester break, I revisited the codebase to turn it into a complete, standalone command-line compiler.
How it works
The compiler is built in C using Lex and Yacc (Flex and Bison):
- Lexer and parser: Tokenizes and parses
.poramsource files, checking syntax for form sections, input fields, and validation rules. - Code generation: Generates standalone HTML with built-in styling, requiring no runtime dependencies or external libraries.
- CLI options: Supports command-line flags to customize themes (light or dark), border radius styles, and output file destinations.
- Offline and self-contained: Compiles directly on the local machine with standard build tools.
Visual editor
To make testing forms faster without manually running CLI commands on every edit, I also built a companion desktop application using Tauri. It provides a side-by-side view where you can edit the
.poram source file on the left and preview the rendered form immediately on the right.