packages feed

cimple-0.0.1: tools/dump-ast.hs

{-# LANGUAGE OverloadedStrings #-}
module Main (main) where

import           Language.Cimple.IO (parseFile)
import           System.Environment (getArgs)
import           Text.Groom         (groom)


processFile :: FilePath -> IO ()
processFile source = do
    putStrLn $ "Processing " ++ source
    ast <- parseFile source
    case ast of
        Left err -> fail err
        Right ok -> putStrLn $ groom ok


main :: IO ()
main = do
  args <- getArgs
  case args of
    [src] -> processFile src
    _     -> fail "Usage: dump-ast <file.c>"