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

-- | Ogma: Runtime Monitor translator: JSON 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 specifications from JSON
--   files.
@package ogma-language-jsonspec
@version 1.12.0

-- | Parser for Ogma specs stored in JSON files.
module Language.JSONSpec.Parser
data JSONFormat
JSONFormat :: Maybe String -> String -> String -> Maybe String -> Maybe String -> String -> Maybe String -> String -> String -> Maybe String -> String -> Maybe String -> Maybe String -> JSONFormat
[specInternalVars] :: JSONFormat -> Maybe String
[specInternalVarId] :: JSONFormat -> String
[specInternalVarExpr] :: JSONFormat -> String
[specInternalVarType] :: JSONFormat -> Maybe String
[specExternalVars] :: JSONFormat -> Maybe String
[specExternalVarId] :: JSONFormat -> String
[specExternalVarType] :: JSONFormat -> Maybe String
[specRequirements] :: JSONFormat -> String
[specRequirementId] :: JSONFormat -> String
[specRequirementDesc] :: JSONFormat -> Maybe String
[specRequirementExpr] :: JSONFormat -> String
[specRequirementResultType] :: JSONFormat -> Maybe String
[specRequirementResultExpr] :: JSONFormat -> Maybe String
data JSONFormatInternal
JSONFormatInternal :: Maybe [JSONPathElement] -> [JSONPathElement] -> [JSONPathElement] -> Maybe [JSONPathElement] -> Maybe [JSONPathElement] -> [JSONPathElement] -> Maybe [JSONPathElement] -> [JSONPathElement] -> [JSONPathElement] -> Maybe [JSONPathElement] -> [JSONPathElement] -> Maybe [JSONPathElement] -> Maybe [JSONPathElement] -> JSONFormatInternal
[jfiInternalVars] :: JSONFormatInternal -> Maybe [JSONPathElement]
[jfiInternalVarId] :: JSONFormatInternal -> [JSONPathElement]
[jfiInternalVarExpr] :: JSONFormatInternal -> [JSONPathElement]
[jfiInternalVarType] :: JSONFormatInternal -> Maybe [JSONPathElement]
[jfiExternalVars] :: JSONFormatInternal -> Maybe [JSONPathElement]
[jfiExternalVarId] :: JSONFormatInternal -> [JSONPathElement]
[jfiExternalVarType] :: JSONFormatInternal -> Maybe [JSONPathElement]
[jfiRequirements] :: JSONFormatInternal -> [JSONPathElement]
[jfiRequirementId] :: JSONFormatInternal -> [JSONPathElement]
[jfiRequirementDesc] :: JSONFormatInternal -> Maybe [JSONPathElement]
[jfiRequirementExpr] :: JSONFormatInternal -> [JSONPathElement]
[jfiRequirementResultType] :: JSONFormatInternal -> Maybe [JSONPathElement]
[jfiRequirementResultExpr] :: JSONFormatInternal -> Maybe [JSONPathElement]
parseJSONFormat :: JSONFormat -> Either String JSONFormatInternal
parseJSONSpec :: (String -> IO (Either String a)) -> JSONFormat -> Value -> IO (Either String (Spec a))
valueToString :: String -> Value -> Either String String
listToEither :: String -> [a] -> Either String a

-- | Parse a JSONPath expression, returning its element components.
parseJSONPath :: Text -> Either String [JSONPathElement]
showErrors :: Show a => Either a b -> Either String b
showErrorsM :: Show a => Maybe (Either a b) -> Either String (Maybe b)

-- | Wrap an Either value in an ExceptT m monad.
except :: forall (m :: Type -> Type) e a. Monad m => Either e a -> ExceptT e m a

-- | Swap the order in a Maybe and an Either monad.
maybeEither :: Maybe (Either a b) -> Either a (Maybe b)
instance GHC.Internal.Read.Read Language.JSONSpec.Parser.JSONFormat
