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

definition: Info
 
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: Info
 no demanded arguments
deterministic: Info
 deterministic operation
documentation: Info
 
Selection of parsers for the conversion of Integrated Code expressions
to Curry
failfree: Info
 <FAILING>
indeterministic: Info
 might be indeterministic
infix: Info
 no fixity defined
iotype: Info
 {() |-> {maybe}}
name: Info
 parsers
precedence: Info
 no precedence defined
result-values: Info
 {maybe}
signature: Info
 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: Info
 operation might suspend on free variables
terminating: Info
 possibly non-terminating
totally-defined: Info
 possibly non-reducible on same data term