Mewlix is a cat-themed esoteric programming language that compiles to vanilla JavaScript. It's designed for making little HTML5 games!
Mewlix's compiler is written in pure Haskell, and is a self-contained binary executable. It can build projects, run them in a simple HTTP server, and package the build output neatly into a .zip file for upload in websites like itch.io.
As is tradition for all languages, here's a simple 'hello world' program in Mewlix:
meow "Hello world!"
And here's how to draw a sprite to the canvas in graphic mode:
from std.graphic takes load, draw, init
🐱 draw_cat()
  do draw <- "cat", 0, 0
~meow
do load <- "cat", "path/to/cat.png"
do init <- draw_cat
It has...
- Cat-themed syntax!
 - A stack-like, LIFO persistent data structure—affectionately nicknamed a 'shelf'.
 - String interpolation—
:3"like [this]!"—affectionately nicknamed 'yarn strings'. - Lambda functions, defined like this: 
🐈 (a, b) -> a + b - Classes, affectionately nicknamed 'clowders'.
 - A function composition operator (
:>) and a function application operator (|>). - Feline-oriented programming capabilities.
 
All of the documentation for Mewlix can be found on the website.
Mewlix's compiler is a self-contained binary executable.
The installation guide can be found here.
A guide on how to build Mewlix from source can be found here.
An assortment of little example projects written in Mewlix can be found here!
All the source code for Mewlix's base library and templates can be found here.
Example projects can be found here.
Additionally:
- A Vim plugin that provides Mewlix syntax highlighting can be found here.
 - A Highlight.js syntax highlighter definition for Mewlix can be found here.
 
A big special thanks to my friend Jade for helping me stay sane through this project and for letting me talk endlessly about it these past few months. I wouldn't have been able to finish it without you, thank you! ♡
