CurryInfo: currypp-3.2.0 / CPP.ICode.TransICode.parsers

definition:
parsers :: Maybe Langtag -> Either String ParserInfo -> LangParser
parsers = maybe iden pars
  where
    iden _ _ s = return $ cleanPM s
    pars :: Langtag -> Either String ParserInfo -> LangParser
    pars l model p =
      case l of
        "sql"       -> case model of
                         Left err -> const (return $ throwPM p err)
                         _        -> SQLParser.parseSQL True model p
        "sql*"      -> case model of
                         Left err -> const (return $ throwPM p err)
                         _        -> SQLParser.parseSQL False model p
        "dummy"     -> DummyParser.parse p
        "format"    -> FormatParser.parse ""       p
        "printf"    -> FormatParser.parse "putStr" p
        "regex"     -> RegexParser.parse p
        "html"      -> fmap (mapWarnsPM (addRealFname (getFilename p))) .
                               MLTranslate.translate l p
        "xml"       -> fmap (mapWarnsPM (addRealFname (getFilename p))) .
                               MLTranslate.translate l p
        _           -> (\_ -> return $ throwPM p ("Bad langtag: " ++ l))
demand:
no demanded arguments
deterministic:
deterministic operation
documentation:
-- Selection of parsers for the conversion of Integrated Code expressions
-- to Curry
failfree:
<FAILING>
indeterministic:
might be indeterministic
infix:
no fixity defined
iotype:
{() |-> {maybe}}
name:
parsers
precedence:
no precedence defined
result-values:
{maybe}
signature:
Prelude.Maybe String
-> Prelude.Either String CPP.ICode.Parser.SQL.ParserInfoType.ParserInfo
-> CPP.ICode.ParsePos.Pos -> String
-> Prelude.IO (CPP.ICode.ParseMonad.PM String)
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term