package nuscr
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page
A tool to manipulate and validate Scribble-style multiparty protocols
Install
dune-project
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.texception UserError of user_errorUserError is a user error and should be reported back so it can be fixed
val show_user_error : user_error -> stringexception Violation of string * Lexing.positionA 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.positionAn 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 -> 'aRaise an user error
val unimpl : here:Lexing.position -> string -> 'aRaise an Unimplemented error
val violation : here:Lexing.position -> string -> 'aRaise a violation, with a reason
val violationf : here:Lexing.position -> ('a, unit, string, 'b) format4 -> 'aRaise a violation, with a reason formatted using format strings
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page