MimIR 0.1
MimIR is my Intermediate Representation
|
The refly plugin allows to reify and reflect MimIR's own representation.
Yields the internal MimIR representation of a Mim expression as %refly.Code
.
Converts a %refly.Code
back to a Mim expression.
Retuns type of an expression.
Retuns the internal mim::Def::gid of the argument.
Debugs a given expression.
tmp
: Prints debug information of a given expression at construction time and vanishes afterwards.perm
: Permanently debugs at every construction. Gets removed at codegen preparation in mim::plug::refly::RemoveDbgPerm.Checks for structurual / alpha-equivalence. We are using two disjoint relations:
A
lphaE
qualSubtag | Alias | A | E | Meaning |
---|---|---|---|---|
ae | f | o | o | assert strucutrual equivalent |
aE | e | o | x | assert not structurual equivalent |
Ae | l | x | o | assert alpha equivalent |
AE | le | x | x | assert not alpha equivalent |
Sets the i
th operand of the reified Code e
to x
.