Poram++ DSL Compiler

Poram++ GUI Preview
Poram++ GUI Preview
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 .poram source 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.