module Main where import qualified Language.Fiddle.Tokenizer import qualified Language.Fiddle.Parser import Language.Fiddle.Ast import qualified Data.Text.IO import qualified System.Environment as System import Control.Monad (forM_) import Control.Monad.Writer import qualified Language.Fiddle.Parser import Language.Fiddle.GenericTree (ToGenericSyntaxTree(toGenericSyntaxTree)) import Data.Aeson (encode) import qualified Data.ByteString.Lazy.Char8 as BL main :: IO () main = do argv <- System.getArgs case argv of [filePath] -> do text <- Data.Text.IO.readFile filePath case squeeze =<< Language.Fiddle.Parser.parseFiddleText filePath text of Left pe -> putStrLn $ "Parse Error: " ++ show pe Right ast -> do putStrLn (BL.unpack $ encode $ toGenericSyntaxTree $ fmap (const ()) ast) _ -> putStrLn "Wrong Args"