<metaname="description"content="fddl is a small programming language inspired by various languages, designed to help learn language implementation concepts in Rust.">
<p>fddl is a small programming language inspired by various languages, designed to help learn language implementation concepts in <ahref="https://rust-lang.org">Rust</a>.</p>
<p>For years, I’ve tried to learn various programming languages, and while I could master the basics, the real-world projects often eluded me. And I wouldn't know who to turn to even if I knew where to start.</p>
<p>fddl was born out of this journey. fddl is my attempt to combine the aspects I appreciate from many languages into something uniquely my own.</p>
<p>I started learning Rust and have really liked it. I've been following tutorials and the <ahref="http://craftinginterpreters.com/">Crafting Interpreters</a> site as guides for this very problematic programming language.</p>
<p>I like aspects of so many programming languages, but I don't really like any of them, so I always found it hard to pick one and stick with it. But I had the same problem playing World of Warcraft, too.</p>
<p>So I, like many of you, decided to make a hobby programming language to see what may be able to be done with it. This is a brand new project as of September 2024 and I am one person.</p>
<li><strong>Custom syntax</strong>fddl introduces unique operators and keywords to make programming more intuitive and fun (at least for me)</li>
<li><strong>Lexer</strong> currently is the only thing working. It tokenizes fddl scripts into understandable pieces of the language.</li>
<li><strong>Tilde Operator</strong> (<code>~</code> and <code>~=</code>) when something almost equals something else. I had the idea from watching a video on <ahref="https://www.youtube.com/watch?v=_ZSFRWJCUY4">Non-Euclidean Doom</a>.</li>
<p><strong>Note:</strong> This is not a final list; it's words on paper (metaphorically) at the time of writing.</p>
<p><strong><code>Lexer</code>:</strong></p>
<ul>
<liclass="task-list-item"><inputtype="checkbox"checkeddisabled> Built and tested for basic syntax and operators.</li>
<liclass="task-list-item"><inputtype="checkbox"checkeddisabled> Supports single-line and documentation comments.</li>
<liclass="task-list-item"><inputtype="checkbox"disabled> Add support for more complex syntax and features.</li>
</ul>
<p><strong><code>Parser</code>:</strong></p>
<ul>
<liclass="task-list-item"><inputtype="checkbox"disabled> Currently a placeholder. Implement parsing for function calls, expressions, checks, literally everything.</li>
</ul>
<p><strong><code>Compiler</code>:</strong></p>
<ul>
<liclass="task-list-item"><inputtype="checkbox"disabled> Currently a placeholder. Implement the compiler to compile parsed code.</li>
</ul>
<p><strong>Comments:</strong></p>
<ul>
<liclass="task-list-item"><inputtype="checkbox"checkeddisabled> Added support for single-line and documentation comments.</li>