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
|