Safe Haskell | None |
---|---|
Language | Haskell2010 |
Hooks for controlling various parts of generators.
Synopsis
- data Hooks = Hooks {}
- defaultHooks :: Hooks
- type EnumEvaluator = EnumEvaluatorArgs -> IO (Maybe EnumEvaluatorResult)
- data EnumEvaluatorArgs = EnumEvaluatorArgs {}
- data EnumEvaluatorResult = EnumEvaluatorResult {}
- evaluateEnumsWithCompiler :: Compiler a => a -> EnumEvaluator
- evaluateEnumsWithDefaultCompiler :: EnumEvaluator
- makeCppSourceToEvaluateEnums :: EnumEvaluatorArgs -> ByteString
- interpretOutputToEvaluateEnums :: EnumEvaluatorArgs -> String -> Either String EnumEvaluatorResult
- internalEvaluateEnumsForInterface :: Interface -> Bool -> IO Interface
Documentation
These hooks can be used to customize the behaviour of a Hoppy generator.
Hooks | |
|
defaultHooks :: Hooks Source #
The default set of hooks associated with an interface. This sets
hookEvaluateEnums
to evaluateEnumsWithDefaultCompiler
.
Enum evaluation
type EnumEvaluator = EnumEvaluatorArgs -> IO (Maybe EnumEvaluatorResult) Source #
A function that answers with representation information about an enum (e.g.
entries' numeric values) for a given request. On success, it returns the
requested data. On failure, it prints a message to standard error and
returns Nothing
.
data EnumEvaluatorArgs Source #
Inputs to the process of automatically evaluting enums.
EnumEvaluatorArgs | |
|
data EnumEvaluatorResult Source #
Raw outputs parsed from the output of an enum evaluator.
EnumEvaluatorResult | |
|
Instances
Show EnumEvaluatorResult Source # | |
Defined in Foreign.Hoppy.Generator.Hook showsPrec :: Int -> EnumEvaluatorResult -> ShowS # show :: EnumEvaluatorResult -> String # showList :: [EnumEvaluatorResult] -> ShowS # |
evaluateEnumsWithCompiler :: Compiler a => a -> EnumEvaluator Source #
Evaluate enums using a specified compiler.
evaluateEnumsWithDefaultCompiler :: EnumEvaluator Source #
Calculates enum values using an interface's compiler.
makeCppSourceToEvaluateEnums :: EnumEvaluatorArgs -> ByteString Source #
Constructs the C++ source program to evaluate enums.
interpretOutputToEvaluateEnums :: EnumEvaluatorArgs -> String -> Either String EnumEvaluatorResult Source #
Interprets the output of a program generated by
makeCppSourceToEvaluateEnums
, returning parsed values if successful, and an
error string otherwise.