stgi-1: app/Main.hs
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
module Main (main) where
import System.Console.ANSI (hSupportsANSI)
import System.Environment
import System.IO (stdout)
import CmdLineArgs
import qualified Stg.ExamplePrograms as Example
import Stg.Language.Prettyprint
import Stg.RunForPager
main :: IO ()
main = do
opts <- parseCmdArgs =<< getArgs
ansi <- case optAnsi opts of
Just x -> pure x
Nothing -> hSupportsANSI stdout
let numStates = optNumStates opts
verbosity = optVerbosity opts
let prog = Example.addTwoNumbers 1 2
runForPager (if ansi then prettyprint else prettyprintPlain)
numStates
verbosity
prog