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.

The parsed form of an ISLE file.

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 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 pattern: the left-hand side of a rule.

The actual type-value: a primitive or an enum with variants.