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.2.0.2 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 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 && < 5 , blaze-svg >= 0.3.6 , random >= 1.1 , blaze-markup , 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 && < 5 , blaze-svg >= 0.3.6 , random >= 1.1 , blaze-markup , bifunctors >= 5.5 , text-show >= 3.8 , text >= 1.2 default-language: Haskell2010