cranelift_isle

Module ast

Source
Expand description

Abstract syntax tree (AST) created from parsed ISLE.

Structs§

  • 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.
  • A declaration of a term with its argument and return types.
  • An extractor macro: (A x y) becomes (B x _ y …). Expanded during ast-to-sema pass.
  • One field of an enum variant.
  • An identifier – a variable, term symbol, or type.
  • One variable locally bound in a (let ...) expression.
  • A model of a construct into SMT-LIB (currently, types or enums)
  • A specification of the semantics of a term.
  • A declaration of a type.
  • One variant of an enum type.

Enums§

  • One toplevel form in an ISLE file.
  • An expression: the right-hand side of a rule.
  • An external binding: an extractor or constructor function attached to a term.
  • A model of an SMT-LIB type.
  • A construct’s value in SMT-LIB
  • A pattern: the left-hand side of a rule.
  • Pragmas parsed with the (pragma <ident>) syntax.
  • An expression used to specify term semantics, similar to SMT-LIB syntax.
  • An operation used to specify term semantics, similar to SMT-LIB syntax.
  • The actual type-value: a primitive or an enum with variants.