| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Foreign.Hoppy.Generator.Hook
Contents
Description
Hooks for controlling various parts of generators.
Synopsis
- data Hooks = Hooks {}
- defaultHooks :: Hooks
- type EnumEvaluator = EnumEvaluatorArgs -> IO (Maybe EnumEvaluatorResult)
- data EnumEvaluatorArgs = EnumEvaluatorArgs {}
- data EnumEvaluatorEntry = EnumEvaluatorEntry {}
- 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.
Constructors
| Hooks | |
Fields
| |
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.
Constructors
| EnumEvaluatorArgs | |
Fields
| |
data EnumEvaluatorEntry Source #
An entry in an enumeration. This also tracks whether the entry came from a scoped enum, for assertion reasons.
Constructors
| EnumEvaluatorEntry | |
Fields
| |
Instances
| Eq EnumEvaluatorEntry Source # | |
Defined in Foreign.Hoppy.Generator.Hook Methods (==) :: EnumEvaluatorEntry -> EnumEvaluatorEntry -> Bool # (/=) :: EnumEvaluatorEntry -> EnumEvaluatorEntry -> Bool # | |
| Ord EnumEvaluatorEntry Source # | |
Defined in Foreign.Hoppy.Generator.Hook Methods compare :: EnumEvaluatorEntry -> EnumEvaluatorEntry -> Ordering # (<) :: EnumEvaluatorEntry -> EnumEvaluatorEntry -> Bool # (<=) :: EnumEvaluatorEntry -> EnumEvaluatorEntry -> Bool # (>) :: EnumEvaluatorEntry -> EnumEvaluatorEntry -> Bool # (>=) :: EnumEvaluatorEntry -> EnumEvaluatorEntry -> Bool # max :: EnumEvaluatorEntry -> EnumEvaluatorEntry -> EnumEvaluatorEntry # min :: EnumEvaluatorEntry -> EnumEvaluatorEntry -> EnumEvaluatorEntry # | |
data EnumEvaluatorResult Source #
Raw outputs parsed from the output of an enum evaluator.
Constructors
| EnumEvaluatorResult | |
Fields
| |
Instances
| Show EnumEvaluatorResult Source # | |
Defined in Foreign.Hoppy.Generator.Hook Methods 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.