The latest version of context-free-art is 0.3.0.1-0.

context-free-art

Version 0.2.0.3 revision 0 uploaded by 414owen.

Package meta

Synopsis
Generate art from context-free grammars
Description

Create art via context free grammar production rules.

Context free grammar primer

Context free grammars consist of a set of terminal symbols, a set of non-terminal symbols, and production rules that map non-terminals to other symbols.

With a context-free grammar, we can generate strings of terminals that conform to the specified language.

Our language will describe graphics.

Example

import Art.ContextFree
import Data.List.NonEmpty

-- Let's define a Production rule
a = Circle 1

-- This will produce an IO Svg from the blaze-svg package
-- to turn it into a string we can use one of the `blaze-svg` renderers
graphic1 = interpret $ Circle 1

-- let's create a non-terminal, 'a', which renders a terminal, 'Circle 1'
-- and has an 85% chance of rendering another circle, placed to its right
a = NonTerminal $ (100, Circle 1) :| [(85, b)]
b = Mod [Move (2, 0)] a
Author
Owen Shepherd
Bug reports
n/a
Category
Graphics
Copyright
n/a
Homepage
https://github.com/414owen/context-free-art
Maintainer
414owen@gmail.com
Package URL
n/a
Stability
n/a

Components