cd63adce14c53e69c109dd6901f7adc06bf3e5a1
[L-seed.git] / src / dbclient.hs
1 import Lseed.Data
2 import Lseed.Data.Functions
3 import Lseed.DB
4 import Lseed.Grammar.Compile
5 import Lseed.Grammar.Parse
6 import Lseed.Mainloop
7 import Lseed.Renderer.Cairo
8 import Control.Applicative
9 import Control.Monad
10 import Text.Printf
11
12 getGarden = spread <$> map (either (error.show) compileGrammarFile . parseGrammar "" . dbcCode)
13                    <$> getCodeToRun
14   where spread gs = zipWith (\g p -> Planted ((fromIntegral p + 0.5) / l) p g inititalPlant) gs [0..]
15           where l = fromIntegral (length gs)
16
17 main = do
18         garden <- getGarden
19         obs <- cairoObserver
20         lseedMainLoop True obs 1 garden