-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/

-- | Ogma: Runtime Monitor translator: CSV Frontend
--   
--   Ogma is a tool to facilitate the integration of safe runtime monitors
--   into other systems. Ogma extends Copilot, a high-level runtime
--   verification framework that generates hard real-time C99 code.
--   
--   This library contains a frontend to read specs from CSV files.
@package ogma-language-csv
@version 1.10.0

-- | Parser for Ogma specs stored in CSV files.
module Language.CSVSpec.Parser

-- | Area of the CSV file that contains the information of interest.
data CSVFormat
CSVFormat :: Bool -> Int -> Maybe Int -> Int -> Maybe Int -> Maybe Int -> CSVFormat
[skipHeaders] :: CSVFormat -> Bool
[specRequirementId] :: CSVFormat -> Int
[specRequirementDesc] :: CSVFormat -> Maybe Int
[specRequirementExpr] :: CSVFormat -> Int
[specRequirementResultType] :: CSVFormat -> Maybe Int
[specRequirementResultExpr] :: CSVFormat -> Maybe Int

-- | Parse a CSV file and extract a Spec from it.
--   
--   An auxiliary function must be provided to parse the requirement
--   expressions.
--   
--   Fails if any of the columns indicate a column out of range, of if the
--   CSV is malformed.
parseCSVSpec :: (String -> IO (Either String a)) -> a -> CSVFormat -> String -> IO (Either String (Spec a))
instance GHC.Read.Read Language.CSVSpec.Parser.CSVFormat
instance GHC.Show.Show Language.CSVSpec.Parser.CSVFormat
