cabal-version: 2.4 -- Initial package description 'context-free-art.cabal' generated by 'cabal -- init'. For further documentation, see -- http://haskell.org/cabal/users-guide/ name: context-free-art version: 0.1.0.0 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 > circles = NonTerminal $ (85, [Move (2, 0)], Circle 1 :| [circles]) :| [] homepage: https://github.com/414owen/context-free-art -- bug-reports: license: BSD-3-Clause license-file: LICENSE author: Owen Shepherd maintainer: 414owen@gmail.com -- copyright: category: Graphics extra-source-files: CHANGELOG.md executable tests main-is: Tests.hs other-modules: Art.Interpreter , Art.Geometry , Art.Grammar , Art.Util build-depends: base ^>= 4.12.0.0 , blaze-svg ^>= 0.3.6 , random ^>= 1.1 , blaze-markup , extra ^>= 1.6 , bifunctors ^>= 5.5 , text-show ^>= 3.8 , text ^>= 1.2 , HUnit ^>= 1.6 default-language: Haskell2010 library exposed-modules: Art.ContextFree other-modules: Art.Geometry , Art.Util , Art.Interpreter , Art.Grammar build-depends: base ^>= 4.12.0.0 , blaze-svg ^>= 0.3.6 , random ^>= 1.1 , blaze-markup , extra ^>= 1.6 , bifunctors ^>= 5.5 , text-show ^>= 3.8 , text ^>= 1.2 default-language: Haskell2010