-- Copyright © 2011 National Institute of Aerospace / Galois, Inc.
-- | An interpreter for Copilot specifications.
{-# LANGUAGE Safe #-}
module Copilot.Interpret
( Format (..)
, interpret
) where
import Copilot.Core
import Copilot.Interpret.Eval
import Copilot.Interpret.Render
-- | Output format for the results of a Copilot spec interpretation.
data Format = Table | CSV
-- | Interpret a Copilot specification.
interpret :: Format -- ^ Format to be used for the output.
-> Int -- ^ Number of steps to interpret.
-> Spec -- ^ Specification to interpret.
-> String
interpret format k spec =
case format of
Table -> renderAsTable e
CSV -> renderAsCSV e
where
e = eval Haskell k spec