packages feed

cimple-0.0.17: tools/dump-tokens.hs

module Main (main) where

import qualified Data.ByteString.Lazy as LBS
import           Language.Cimple      (alexScanTokens)
import           System.Environment   (getArgs)
import           Text.Groom           (groom)

processFile :: FilePath -> IO ()
processFile source = do
    putStrLn $ "Processing " ++ source
    contents <- LBS.readFile source
    case alexScanTokens contents 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-tokens <file.c>"