package nuscr
A tool to manipulate and validate Scribble-style multiparty protocols
Install
Dune Dependency
Authors
Maintainers
Sources
nuscr-2.1.0.tbz
sha256=4798916862412a0ac4721f63b77c243d7d7327c8ff2d18d379eb2f4202d43e4d
sha512=8475f03a5e81fbde01fb6ddd90f2c07d8a327d5d71301a8da6e169c5c1c8a8f94f528296b2c2d2be7abfbe10fceee048834926abbf5e739a62274f904a8f0869
doc/nuscr.lib/Nuscrlib/Err/index.html
Module Nuscrlib.Err
Error reporting
type user_error =
| UnknownPragma of string
| IncompatibleFlag of string * string
| MissingFlag of string * string
| PragmaNotSet of string * string
| LexerError of string
| ParserError of Loc.t
| UnboundRecursionName of Names.TypeVariableName.t
| RedefinedRecursionName of Names.TypeVariableName.t * Loc.t * Loc.t
| Uncategorised of string
| InvalidCommandLineParam of string
| UnboundRole of Names.RoleName.t
| ReflexiveMessage of Names.RoleName.t * Loc.t * Loc.t
| UnableToMerge of string
| RedefinedProtocol of Names.ProtocolName.t * Loc.t * Loc.t
| UnboundProtocol of Names.ProtocolName.t
| ArityMismatch of Names.ProtocolName.t * int * int
| InconsistentNestedChoice of Names.RoleName.t * Names.RoleName.t
| RoleMismatch of Names.RoleName.t * Names.RoleName.t
| DuplicateLabel of Names.LabelName.t
| DuplicateRoleArgs of Names.ProtocolName.t
| DuplicateRoleParams of Names.ProtocolName.t
| ChoiceCallRoleMismatch of Names.ProtocolName.t
| DuplicatePayloadField of Names.LabelName.t * Names.VariableName.t
| FileSysErr of string
| ProtocolNotFound of Names.ProtocolName.t
| IllFormedPayloadType of string
| TypeError of string * string
| UnknownVariableValue of Names.RoleName.t * Names.VariableName.t
| UnsatisfiableRefinement
| StuckRefinement
| UnguardedTypeVariable of Names.TypeVariableName.t
A user error is an error found in the protocols
val sexp_of_user_error : user_error -> Sexplib0.Sexp.t
exception UserError of user_error
UserError is a user error and should be reported back so it can be fixed
val show_user_error : user_error -> string
exception Violation of string * Lexing.position
A Violation is reported when an impossible state was reached. It has to be considered a bug even when the fix is to change the Violation to a user error
exception UnImplemented of string * Lexing.position
An Unimplemented is reported when certain features are not implemented, the string attached provides a description of the feature missing.
Shortcuts for raising exceptions
val uerr : user_error -> 'a
Raise an user error
val unimpl : here:Lexing.position -> string -> 'a
Raise an Unimplemented error
val violation : here:Lexing.position -> string -> 'a
Raise a violation, with a reason
val violationf : here:Lexing.position -> ('a, unit, string, 'b) format4 -> 'a
Raise a violation, with a reason formatted using format strings
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page