/arsenic

parser/compiler for knitting patterns

Primary LanguageHaskell

arsenic

parser/compiler for knitting patterns

This was part of a solution to a 2017 MIT Mystery Hunt puzzle called Arsenic. (solution page)

----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----||||||||||O|O||/----|/O||/O|--\O\OO/O/--|O\O||||--/||O||O\|/O||O||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----|||||||||O|O|||/----|/O||/O|--|\O|/O/|--||||O\O|--/|||O\O|||O/O|||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----\|O|O|||O|O||||/----|/O||/O|--||O/\O||--|O\O||||--/O||\O|O\O|O/||O\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---|||-||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----\||O|O||||||||||----|/O||/O|--\O\OO/O/--||||O\O|--/|O|||O\|/O|||O|\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----\|||O|O|||||||||----|/O||/O|--|\O|/O/|--|O\O||||--/||O||O\|/O||O||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
---------------------|\O\O|--|||O|||\|/|||O|||----\||||O|O|||O|O|/----|/O||/O|--||O/\O||--||||O\O|--/|||O\O|||O/O|||\----
---------------------|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---|||-||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----||||||||||O|O||/----|/O||/O|--\O\OO/O/--|O\O||||--/O||\O|O\O|O/||O\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----|||||||||O|O|||/----|/O||/O|--|\O|/O/|--||||O\O|--/|O|||O\|/O|||O|\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----\|O|O|||O|O||||/----|/O||/O|--||O/\O||--|O\O||||--/||O||O\|/O||O||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---|||-||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----\||O|O||||||||||----|/O||/O|--\O\OO/O/--||||O\O|--/|||O\O|||O/O|||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----\|||O|O|||||||||----|/O||/O|--|\O|/O/|--|O\O||||--/O||\O|O\O|O/||O\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
---------------------|\O\O|--|||/|||O|O|||\|||----\||||O|O|||O|O|/----|/O||/O|--||O/\O||--||||O\O|--/|O|||O\|/O|||O|\----
---------------------|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---|||-||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----||||||||||O|O||/----|/O||/O|--\O\OO/O/--|O\O||||--/||O||O\|/O||O||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----|||||||||O|O|||/----|/O||/O|--|\O|/O/|--||||O\O|--/|||O\O|||O/O|||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----\|O|O|||O|O||||/----|/O||/O|--||O/\O||--|O\O||||--/O||\O|O\O|O/||O\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---|||-||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----\||O|O||||||||||----|/O||/O|--\O\OO/O/--||||O\O|--/|O|||O\|/O|||O|\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----\|||O|O|||||||||----|/O||/O|--|\O|/O/|--|O\O||||--/||O||O\|/O||O||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
---------------------|\O\O|--|||O|||\|/|||O|||----\||||O|O|||O|O|/----|/O||/O|--||O/\O||--||||O\O|--/|||O\O|||O/O|||\----
---------------------|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---|||-||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----||||||||||O|O||/----|/O||/O|--\O\OO/O/--|O\O||||--/O||\O|O\O|O/||O\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----|||||||||O|O|||/----|/O||/O|--|\O|/O/|--||||O\O|--/|O|||O\|/O|||O|\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||/|||O|O|||\|||----\|O|O|||O|O||||/----|/O||/O|--||O/\O||--|O\O||||--/||O||O\|/O||O||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---|||-||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----\||O|O||||||||||----|/O||/O|--\O\OO/O/--||||O\O|--/|||O\O|||O/O|||\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|O|||/O\O\|||O|--|\O\O|--|||O|||\|/|||O|||----\|||O|O|||||||||----|/O||/O|--|\O|/O/|--|O\O||||--/O||\O|O\O|O/||O\----
----|||||||||||||||--|O/O/|--|||||||||||||||||--||||||||||||||||||||---O/--O/---||||||||--||||||||--|||||||||||||||||----
----|||||||||||||||--||||||--|||||||||||||||||--||||||||||||||||||||--||||||||--||||||||--||||||||--|||||||||||||||||----
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------
----|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||----
----|O\|||O\||||/O||||O\O||O\|||O\|||O\O|||/O|||||/O||O\O|||||/O||O\|||O\|||O\|||O\|||O\|||||O\O||O\||||/O|||/O||O\O|----
----|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||----
----|O\O|||/O||O\O||||||||||/O||||||||/O||O\O||||O\||||/O||||O\O|||||||O\|||||||||/O||O\O||||||||||/O||O\O||O\|||O\||----
----|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||----
----|O\|||O\||||/O|||||||||O\|||O\O||O\|||O\||||||||||O\||||||/O|||||||O\|||O\||||||||O\|||||O\|||O\|||O\||||||||||||----
----|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||----
-------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------