class_docstr: This interpreter provides default implementation for the methods
  interpreting AST expression into code.
  
  It can be used for the most programming languages and requires only
  language-specific instance of the CodeGenerator.
  
  !!IMPORTANT!!: Code generators used by this interpreter must know nothing
  about AST.
code: def interpret_bin_num_expr(
      self,
      expr,
      is_left_from_parent=None,
      parent_precedence=None,
      is_parent_associative=None,
      **kwargs,
  ):
      return self._cg.infix_expression(
          left=self._do_interpret(
              expr.left,
              is_left_from_parent=True,
              parent_precedence=expr.precedence,
              **kwargs,
          ),
          op=expr.op.value,
          right=self._do_interpret(
              expr.right,
              is_left_from_parent=False,
              parent_precedence=expr.precedence,
              is_parent_associative=expr.is_associative,
              **kwargs,
          ),
          wrap=self._wrap_infix_expr(
              expr,
              is_left_from_parent=is_left_from_parent,
              parent_precedence=parent_precedence,
              is_parent_associative=is_parent_associative,
          ),
      )
  
imports: from m2cgen.assemblers import fallback_expressions
  from m2cgen.ast import BinNumExpr, CompExpr, IfExpr
  from m2cgen.interpreters.utils import CachedResult, _get_handler_name
label_desc: Use image node_id 4 for calling the ToCodeInterpreter obj's underlying member method code with example usage: obj.interpret_bin_num_expr(expr, is_left_from_parent, parent_precedence, is_parent_associative) and returns: self