|
| Language.Copilot.Analyser |
|
|
|
|
| Description |
| This module provides a way to check that a Copilot specification is compilable
|
|
| Synopsis |
|
|
|
|
| Main error checking functions
|
|
| check :: StreamableMaps Spec -> Maybe Error |
| Check a Copilot specification.
If it is not compilable, then returns an error describing the issue.
Else, returns Nothing
|
|
| data Error |
| Used for representing an error in the specification, detected by check
| | Constructors | | BadSyntax String Var | the BNF is not respected
| | BadDrop Int Var | A drop expression of less than 0 is used
| | BadSamplingPhase Var Var Phase | if an external variable is sampled at phase 0 then there is no time for the stream to be updated
| | BadType Var Var | either a variable is not defined, or not with the good type ; there is no implicit conversion of types in Copilot
| | NonNegativeWeightedClosedPath [Var] Weight | The algorithm to compile Copilot specification can only work if there is no negative weighted closed path in the specification, as described in the original research paper
| | DependsOnClosePast [Var] Var Weight Weight | Could be compiled, but would need bigger prophecyArrays
| | DependsOnFuture [Var] Var Weight | If an output depends of a future of an input it will be hard to compile to say the least
|
| Instances | |
|
|
| data SpecSet |
| Constructors | | AllSpecSet | | | FunSpecSet | | | DropSpecSet | |
| Instances | |
|
|
| Varied other things
|
|
| getExternalVars :: StreamableMaps Spec -> [(Type, Var, Phase)] |
|
| getAtomType :: Streamable a => Spec a -> Type |
|
| Produced by Haddock version 2.6.1 |