Skip to main content

Module ast

Module ast 

Source
Expand description

Abstract syntax tree (AST) created from parsed ISLE.

Structs§

Arm
Arm of a spec match expression.
Attr
An attribute applied to a declaration.
Converter
An implicit converter: the given term, which must have type (inner_ty) -> outer_ty, is used either in extractor or constructor position as appropriate when a type mismatch with the given pair of types would otherwise occur.
Decl
A declaration of a term with its argument and return types.
Extractor
An extractor macro: (A x y) becomes (B x _ y …). Expanded during ast-to-sema pass.
FieldInit
Field initializer in a struct constructor.
Form
Ident
An identifier – a variable, term symbol, or type.
IfLet
Instantiation
LetDef
One variable locally bound in a (let ...) expression.
Model
A model of a construct into SMT-LIB (currently, types or enums)
ModelField
Modifies
State modification clause.
Rule
Signature
Spec
A specification of the semantics of a term.
SpecMacro
State
Declare an element of global state accessible by verification specs.
StructField
One named field of a struct or enum variant.
StructFields
A List of named fields of a struct.
TupleField
One unnamed field of a tuple.
TupleFields
A List of unnamed fields of a tuple.
Type
A declaration of a type.
Variant
One variant of an enum type.

Enums§

AttrKind
A kind of attribute that can be applied to a term declaration or rule.
AttrTarget
Object an attribute applies to.
Def
One toplevel form in an ISLE file.
Expr
An expression: the right-hand side of a rule.
Extern
An external binding: an extractor or constructor function attached to a term.
Fields
The fields of a struct or enum variant, formatted as a struct or tuple.
ModelType
A model of an SMT-LIB type.
ModelValue
A construct’s value in SMT-LIB
Pattern
A pattern: the left-hand side of a rule.
Pragma
Pragmas parsed with the (pragma <ident>) syntax.
SpecExpr
An expression used to specify term semantics, similar to SMT-LIB syntax.
SpecOp
An operation used to specify term semantics, similar to SMT-LIB syntax.
TypeValue
The actual type-value: a primitive or an enum with variants.