Skip to main content

Module ast

Module ast 

Source
Expand description

Abstract Syntax Tree for the Specl specification language.

Structs§

ActionBody
Action body with requires and effects.
ActionDecl
action NAME(params) { body }
Binding
A variable binding x in S.
ConstDecl
const NAME: Type or const NAME: value
Expr
An expression.
FairnessConstraint
A fairness constraint.
FairnessDecl
fairness { constraints }
FuncDecl
func NAME(params) { body } User-defined helper function for reuse (like TLA+ operator definitions). Functions are pure and are inlined at call sites during compilation.
FuncParam
A function parameter (untyped - types are inferred).
Ident
An identifier with its source span.
InitDecl
init { expr }
InvariantDecl
invariant NAME { expr }
Module
A Specl module (top-level compilation unit).
Param
A parameter declaration.
PropertyDecl
property NAME { expr }
TypeDecl
type NAME = Type
UseDecl
use ModuleName
VarDecl
var NAME: Type

Enums§

BinOp
Binary operator.
ConstValue
The value of a constant declaration.
Decl
A top-level declaration.
ExprKind
The kind of expression.
FairnessKind
Kind of fairness constraint.
QuantifierKind
Quantifier kind.
RecordFieldUpdate
A record field update.
TypeExpr
A type expression.
UnaryOp
Unary operator.