summaryrefslogtreecommitdiff
path: root/src/Main.hs
blob: ea41afeb55d29e3599bc9164730ccdfc9bc65562 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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"