The latest version of context-free-art is 0.3.0.1-0.
context-free-art
Version 0.2.0.0 revision 0 uploaded by 414owen.
Package meta
- Synopsis
- Generate art from context-free grammars
- Description
Create art via context free grammar production rules. Includes an SVG backend.
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. -- At every layer, this will have an 85% chance -- of rendering another circle a = Mod [Move (2, 0)] b b = NonTerminal $ (85, c) :| [] c = NonTerminal $ (100, Circle 1) :| [(100, 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