# pint 🍺 ### A [(P)iet](https://www.dangermouse.net/esoteric/piet.html) (Int)erpreter with a builtin png-decoder.
Piet is a programming language in which programs look like abstract paintings. The language is named after Piet Mondrian, who pioneered the field of geometric abstract art.

This is a piet program that prints "Hello World!"

## Installation ``` cargo install pint ``` or you can clone this repo and build it from source ## Usage ``` pint some_test.png ``` The [codel-size](http://www.majcher.com/code/piet/Piet-Interpreter.html#codels) is inferred automatically. You can also pass it manually: ``` pint some_test.png -c ``` Since the png-decoder is built from scratch it only implements the most common [Png color-types](https://www.w3.org/TR/PNG/#6Colour-values) TruecolorRGB and Indexed. There is currently no support for gifs. ## Tests Typing `make` shows you the options for this crate. #### unit-tests ``` $ make unit_test or $ cargo t ``` There also integration tests that check the result of the test-images located in tests/fixtures ``` $ make integration_tests or $ bash tests/integration_tests ``` ## Contribution I would appreciate any kind of contribution (as long as the tests pass :)) or feedback since this is my first time writing rust. Maybe there is somebody willing to finish the png decoder to support all kinds of pngs