{-# LANGUAGE Safe #-}
module Copilot.Interpret
( Format (..)
, interpret
) where
import Copilot.Core
import Copilot.Interpret.Eval
import Copilot.Interpret.Render
data Format = Table | CSV
interpret :: Format
-> Int
-> Spec
-> String
interpret :: Format -> Int -> Spec -> String
interpret Format
format Int
k Spec
spec =
case Format
format of
Format
Table -> ExecTrace -> String
renderAsTable ExecTrace
e
Format
CSV -> ExecTrace -> String
renderAsCSV ExecTrace
e
where
e :: ExecTrace
e = ShowType -> Int -> Spec -> ExecTrace
eval ShowType
Haskell Int
k Spec
spec