definition:
|
parseParenTerm :: SMTParser SMT.Term
parseParenTerm
-- parser for negative numbers
= return (SMT.TConst . SMT.Num) <*> parseNum <* terminal RParen
-- parser for qualified identifiers
<|> terminal KW_as *> return SMT.TComb <*> (return SMT.As <*> parseSym
<*> parseSort) <*> return [] <* terminal RParen
-- parser for complex terms
<|> return SMT.TComb <*> parseQIdent <*> some parseTerm <* terminal RParen
-- parser for let terms
<|> terminal KW_let *> return SMT.Let <* terminal LParen <*> some parseVarBind
<* terminal RParen <*> parseTerm <* terminal RParen
-- parser for universally quantified terms
<|> terminal KW_forall *> return SMT.Forall <* terminal LParen
<*> some parseSortedVar <* terminal RParen
<*> parseTerm <* terminal RParen
-- parser for existentially quantified terms
<|> terminal KW_exists *> return SMT.Exists <* terminal LParen
<*> some parseSortedVar <* terminal RParen
<*> parseTerm <* terminal RParen
-- parser for annotated terms
<|> terminal Bang *> return SMT.Annot <*> parseTerm <*> some parseAttribute
<* terminal RParen
|
demand:
|
no demanded arguments
|
deterministic:
|
deterministic operation
|
documentation:
|
--- parser for parenthesized terms
|
failfree:
|
<FAILING>
|
indeterministic:
|
referentially transparent operation
|
infix:
|
no fixity defined
|
iotype:
|
{() |-> _}
|
name:
|
parseParenTerm
|
precedence:
|
no precedence defined
|
result-values:
|
_
|
signature:
|
ParserComb.Parser Language.SMTLIB.Scanner.Token Language.SMTLIB.Types.Term
|
solution-complete:
|
operation might suspend on free variables
|
terminating:
|
possibly non-terminating
|
totally-defined:
|
possibly non-reducible on same data term
|