{-|
Module      : Data.Dson
Copyright   : (c) Ezequiel Alvarez 2014
License     : MIT
Maintainer  : welcometothechango@gmail.com
Stability   : provisional
Portability : portable

Main module. Has a test for the parser and the serializer.
-}

module Data.Dson where

import Text.Parsec
import Text.Parsec.String (Parser)
import Data.Dson.Parsec
import Data.Dson.Serializer (dsonToJson)

run :: Parser Dson -> String -> IO ()
run p input = case (parse p "" input) of
                  Left err -> putStr "parse error at " >> print err
                  Right x  -> print $ dsonToJson x

-- | Reads a DSON string, parses it to a Dson value and serializes it back to JSON.
main :: IO ()
main = run dsonTop =<< getLine