seal5.transform.infer_types.visitor

A transformation module for simplifying M2-ISA-R behavior expressions. The following simplifications are done:

  • Resolvable m2isar.metamodel.arch.Constant s are replaced by m2isar.metamodel.arch.IntLiteral s representing their value

  • Fully resolvable arithmetic operations are carried out and their results represented as a matching m2isar.metamodel.arch.IntLiteral

  • Conditions and loops with fully resolvable conditions are either discarded entirely or transformed into code blocks without any conditions

  • Ternaries with fully resolvable conditions are transformed into only the matching part

  • Type conversions of m2isar.metamodel.arch.IntLiteral s apply the desired type directly to the IntLiteral and discard the type conversion

Functions

assignment(self, context)

binary_operation(self, context)

callable_(self, context)

concat_operation(self, context)

conditional(self, context)

group(self, context)

indexed_reference(self, context)

int_literal(self, context)

loop(self, context)

named_reference(self, context)

number_literal(self, context)

operation(self, context)

procedure_call(self, context)

return_(self, context)

scalar_definition(self, context)

slice_operation(self, context)

ternary(self, context)

type_conv(self, context)

unary_operation(self, context)