Struct cranelift_isle::sema::TermEnv
source · pub struct TermEnv {
pub terms: Vec<Term>,
pub term_map: StableMap<Sym, TermId>,
pub rules: Vec<Rule>,
pub converters: StableMap<(TypeId, TypeId), TermId>,
}
Expand description
The term environment.
This is sort of a typed and reorganized AST that more directly reflects ISLE semantics than the input ISLE source code (where as the AST is the opposite).
Fields§
§terms: Vec<Term>
Arena of interned terms defined in this ISLE program.
This is indexed by TermId
.
term_map: StableMap<Sym, TermId>
A map from am interned Term
’s name to its TermId
.
rules: Vec<Rule>
Arena of interned rules defined in this ISLE program.
This is indexed by RuleId
.
converters: StableMap<(TypeId, TypeId), TermId>
Map from (inner_ty, outer_ty) pairs to term IDs, giving the defined implicit type-converter terms we can try to use to fit types together.