m2isar.metamodel.utils.ExprVisitor
A helper module for applying all expression visitor functions in this package to functions and instructions to get rid of monkey patching and use instead polymorphism.
Classes
Base class for recursive metamodel traversal with 2 modes: |
Module Contents
- class ExprVisitor[source]
Bases:
abc.ABCBase class for recursive metamodel traversal with 2 modes:
Generating text by appending context while traversing AST.
Analyzing/Mutating the AST (sometimes with the help of a context) and returning a modified AST.
To implement a new visitor, overload the ‘generate’ method of nodes that need altered visitation behavior.
Use
selffor additonal global state information. Usecontextfor stack-based information that is only relevant for the current AST branch.- abstract generate(expr: m2isar.metamodel.behav.BaseNode, context=None)[source]
- abstract default_visit(expr: m2isar.metamodel.behav.BaseNode, context)[source]
- visit_codeliteral(expr: m2isar.metamodel.behav.CodeLiteral, context)[source]
- visit_operator(expr: m2isar.metamodel.behav.Operator, context)[source]
- visit_operation(expr: m2isar.metamodel.behav.Operation, context)[source]
- visit_block(expr: m2isar.metamodel.behav.Block, context)[source]
- visit_binary_operation(expr: m2isar.metamodel.behav.BinaryOperation, context)[source]
- visit_slice_operation(expr: m2isar.metamodel.behav.SliceOperation, context)[source]
- visit_concat_operation(expr: m2isar.metamodel.behav.ConcatOperation, context)[source]
- visit_number_literal(expr: m2isar.metamodel.behav.Literal, context)[source]
- visit_assignment(expr: m2isar.metamodel.behav.Assignment, context)[source]
- visit_conditional(expr: m2isar.metamodel.behav.Conditional, context)[source]
- visit_loop(expr: m2isar.metamodel.behav.Loop, context)[source]
- visit_ternary_operation(expr: m2isar.metamodel.behav.Ternary, context)[source]
- visit_return_operation(expr: m2isar.metamodel.behav.Return, context)[source]
- visit_unary_operation(expr: m2isar.metamodel.behav.UnaryOperation, context)[source]
- visit_var_definition(expr: m2isar.metamodel.behav.VarDefinition, context)[source]
- visit_break(expr: m2isar.metamodel.behav.Break, context)[source]
- visit_named_reference(expr: m2isar.metamodel.behav.NamedReference, context)[source]
- visit_indexed_reference(expr: m2isar.metamodel.behav.IndexedReference, context)[source]
- visit_type_conv(expr: m2isar.metamodel.behav.TypeConv, context)[source]
- visit_callable(expr: m2isar.metamodel.behav.Callable, context)[source]
- visit_procedure_call(expr: m2isar.metamodel.behav.Callable, context)[source]
- visit_group(expr: m2isar.metamodel.behav.Group, context)[source]