| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
GHC.Debugger.Runtime.Term.Parser
Description
This module contains the TermParser abstraction, which provides utilities for
interpreting and parsing Terms
Synopsis
- obtainParsedTerm :: String -> Int -> Bool -> Type -> ForeignHValue -> TermParser a -> Debugger (Either [TermParseError] a)
- data TermParseError = TermParseError {}
- newtype TermParser a = TermParser {
- runTermParser :: Term -> Debugger (Either [TermParseError] a)
- liftDebugger :: Debugger a -> TermParser a
- liftDebuggerOrFail :: Show e => Debugger (Either e a) -> TermParser a
- attachErrors :: [TermParseError] -> Debugger (Either [TermParseError] a) -> Debugger (Either [TermParseError] a)
- parseError :: TermParseError -> TermParser a
- termTag :: Term -> String
- anyTerm :: TermParser Term
- ensureTerm :: TermParser Term
- checkType :: Type -> TermParser ()
- traceTerm :: TermParser ()
- seqTermP :: HasCallStack => TermParser a -> TermParser a
- refreshTerm :: TermParser Term
- focus :: TermParser Term -> TermParser a -> TermParser a
- focusSeq :: HasCallStack => TermParser Term -> TermParser a -> TermParser a
- subtermTerm :: Int -> TermParser Term
- subtermWith :: Int -> TermParser a -> TermParser a
- matchOccNameTerm :: String -> a -> TermParser a
- matchDataConTerm :: DataCon -> a -> TermParser a
- matchConstructorTerm :: String -> TermParser ()
- constructorName :: Either String DataCon -> String
- newtypeWrapParser :: TermParser Term
- primParser :: TermParser Word
- isSuspension :: TermParser Bool
- foreignValueToTerm :: Type -> ForeignHValue -> TermParser Term
- logTermParserMsg :: String -> String -> Debugger ()
- runTermParserLogged :: String -> TermParser a -> Term -> Debugger (Either [TermParseError] a)
- tuple2Of :: TermParser a -> TermParser b -> TermParser (a, b)
- boolParser :: TermParser Bool
- parseList :: TermParser a -> TermParser [a]
- intParser :: TermParser Int
- intPrimParser :: TermParser Int
- wordParser :: TermParser Word
- wordPrimParser :: TermParser Word
- stringParser :: TermParser String
- maybeParser :: TermParser a -> TermParser (Maybe a)
- varValueParser :: TermParser (Term, Bool)
- varFieldsParser :: TermParser [(String, Term)]
- varFieldTupleParser :: TermParser (Term, Term)
- varFieldValueParser :: TermParser Term
- programTermParser :: TermParser Term
- reifyBool :: Bool -> Debugger ForeignHValue
Documentation
obtainParsedTerm :: String -> Int -> Bool -> Type -> ForeignHValue -> TermParser a -> Debugger (Either [TermParseError] a) Source #
The main entry point for running the TermParser.
Term parser abstraction
data TermParseError Source #
Constructors
| TermParseError | |
Fields | |
Instances
| Eq TermParseError Source # | |
Defined in GHC.Debugger.Runtime.Term.Parser Methods (==) :: TermParseError -> TermParseError -> Bool # (/=) :: TermParseError -> TermParseError -> Bool # | |
| Show TermParseError Source # | |
Defined in GHC.Debugger.Runtime.Term.Parser Methods showsPrec :: Int -> TermParseError -> ShowS # show :: TermParseError -> String # showList :: [TermParseError] -> ShowS # | |
newtype TermParser a Source #
Constructors
| TermParser | |
Fields
| |
Instances
liftDebugger :: Debugger a -> TermParser a Source #
liftDebuggerOrFail :: Show e => Debugger (Either e a) -> TermParser a Source #
attachErrors :: [TermParseError] -> Debugger (Either [TermParseError] a) -> Debugger (Either [TermParseError] a) Source #
parseError :: TermParseError -> TermParser a Source #
anyTerm :: TermParser Term Source #
checkType :: Type -> TermParser () Source #
traceTerm :: TermParser () Source #
seqTermP :: HasCallStack => TermParser a -> TermParser a Source #
Evaluate the currently focused term
refreshTerm :: TermParser Term Source #
If a term is a suspension, make sure that it's a thunk and not just that we reached the depth limit.
focus :: TermParser Term -> TermParser a -> TermParser a Source #
Change the focus of the term parser onto the specified term.
focusSeq :: HasCallStack => TermParser Term -> TermParser a -> TermParser a Source #
Focus on a new subtree, after forcing it to WHNF.
subtermTerm :: Int -> TermParser Term Source #
Choose the nth subterm
subtermWith :: Int -> TermParser a -> TermParser a Source #
Choose the nth subterm, force it to WHNF and run the supplied parser on it.
matchOccNameTerm :: String -> a -> TermParser a Source #
matchDataConTerm :: DataCon -> a -> TermParser a Source #
matchConstructorTerm :: String -> TermParser () Source #
primParser :: TermParser Word Source #
Parse a primitive value as a single word (Prim term)
isSuspension :: TermParser Bool Source #
Is the current focus a suspension?
foreignValueToTerm :: Type -> ForeignHValue -> TermParser Term Source #
Obtain a Term from a ForeignHValue
Logging parsers
runTermParserLogged :: String -> TermParser a -> Term -> Debugger (Either [TermParseError] a) Source #
Base parsers
tuple2Of :: TermParser a -> TermParser b -> TermParser (a, b) Source #
parseList :: TermParser a -> TermParser [a] Source #
Parse a list, given a parser for each element. The whole list will be forced.
wordParser :: TermParser Word Source #
Parse a Word
stringParser :: TermParser String Source #
Parse a String term
maybeParser :: TermParser a -> TermParser (Maybe a) Source #
Parse a Maybe something
VarValue
varValueParser :: TermParser (Term, Bool) Source #
Parse a term which is a ValValue
VarFields
varFieldsParser :: TermParser [(String, Term)] Source #
Parse a term which is a 'Program VarFields'
varFieldTupleParser :: TermParser (Term, Term) Source #
Program Parser
programTermParser :: TermParser Term Source #
Parses and evaluates a Program term.