Expand description
A strongly-normalizing intermediate representation for ISLE rules. This representation is chosen to closely reflect the operations we can implement in Rust, to make code generation easy.
Structs§
- A hash-consed identifier for a binding, stored in a RuleSet.
- A field index in a tuple or an enum variant.
Enums§
- Bindings are anything which can be bound to a variable name in Rust. This includes expressions, such as constants or function calls; but it also includes names bound in pattern matches.
- Pattern matches which can fail. Some binding sites are the result of successfully matching a constraint. A rule applies constraints to binding sites to determine whether the rule matches.
- Records whether a given pair of rules can both match on some input.
Functions§
- Construct a RuleSet for each term in
termenv
that has rules.