equip.visitors package

Submodules

equip.visitors.bytecode

Callback the visitor method for each encountered opcode.
copyright:
  1. 2014 by Romain Gaucher (@rgaucher)
license:

Apache 2, see LICENSE for more details.

class equip.visitors.bytecode.BytecodeVisitor[source]

Bases: object

A visitor to visit each instruction in the bytecode. For example, the following code:

class CallFunctionVisitor(BytecodeVisitor):
  def __init__(self):
    BytecodeVisitor.__init__(self)

  def visit_call_function(self, oparg):
    print "Function call with %d args" % oparg

Prints whenever a CALL_FUNCTION opcode is visited and prints out its number of arguments (the oparg for this opcode).

static toMethodName(name)[source]
visit(index, op, arg=None, lineno=None, cflow_in=False)[source]

Callback of the visitor. It dynamically constructs the name of the specialized visitor to call based on the name of the opcode.

Parameters:
  • index – Bytecode index.
  • op – The opcode that is currently visited.
  • arg – The expanded oparg (i.e., constants, names, etc. are resolved).
  • lineno – The line number associated with the opcode.
  • cflow_inTrue if the current index is the target of a jump.
visit_binary_add()[source]
visit_binary_and()[source]
visit_binary_divide()[source]
visit_binary_floor_divide()[source]
visit_binary_lshift()[source]
visit_binary_modulo()[source]
visit_binary_multiply()[source]
visit_binary_or()[source]
visit_binary_power()[source]
visit_binary_rshift()[source]
visit_binary_subscr()[source]
visit_binary_subtract()[source]
visit_binary_true_divide()[source]
visit_binary_xor()[source]
visit_break_loop()[source]
visit_build_class()[source]
visit_build_list(oparg)[source]
visit_build_map(oparg)[source]
visit_build_set(oparg)[source]
visit_build_slice(oparg)[source]
visit_build_tuple(oparg)[source]
visit_call_function(oparg)[source]
visit_call_function_kw(oparg)[source]
visit_call_function_var(oparg)[source]
visit_call_function_var_kw(oparg)[source]
visit_compare_op(compare)[source]
visit_continue_loop(jump_abs)[source]
visit_delete_attr(name)[source]
visit_delete_fast(local)[source]
visit_delete_global(name)[source]
visit_delete_name(name)[source]
visit_delete_slice_0()[source]
visit_delete_slice_1()[source]
visit_delete_slice_2()[source]
visit_delete_slice_3()[source]
visit_delete_subscr()[source]
visit_dup_top()[source]
visit_dup_topx(oparg)[source]
visit_end_finally()[source]
visit_exec_stmt()[source]
visit_extended_arg(oparg)[source]
visit_for_iter(jump_rel)[source]
visit_get_iter()[source]
visit_import_from(name)[source]
visit_import_name(name)[source]
visit_import_star()[source]
visit_inplace_add()[source]
visit_inplace_and()[source]
visit_inplace_divide()[source]
visit_inplace_floor_divide()[source]
visit_inplace_lshift()[source]
visit_inplace_modulo()[source]
visit_inplace_multiply()[source]
visit_inplace_or()[source]
visit_inplace_power()[source]
visit_inplace_rshift()[source]
visit_inplace_subtract()[source]
visit_inplace_true_divide()[source]
visit_inplace_xor()[source]
visit_jump_absolute(jump_abs)[source]
visit_jump_forward(jump_rel)[source]
visit_jump_if_false_or_pop(jump_abs)[source]
visit_jump_if_true_or_pop(jump_abs)[source]
visit_list_append(oparg)[source]
visit_load_attr(name)[source]
visit_load_closure(free)[source]
visit_load_const(constant)[source]
visit_load_deref(free)[source]
visit_load_fast(local)[source]
visit_load_global(name)[source]
visit_load_locals()[source]
visit_load_name(name)[source]
visit_make_closure(oparg)[source]
visit_make_function(oparg)[source]
visit_map_add(oparg)[source]
visit_nop()[source]
visit_pop_block()[source]
visit_pop_jump_if_false(jump_abs)[source]
visit_pop_jump_if_true(jump_abs)[source]
visit_pop_top()[source]
visit_print_expr()[source]
visit_print_item()[source]
visit_print_item_to()[source]
visit_print_newline()[source]
visit_print_newline_to()[source]
visit_raise_varargs(oparg)[source]
visit_return_value()[source]
visit_rot_four()[source]
visit_rot_three()[source]
visit_rot_two()[source]
visit_set_add(oparg)[source]
visit_setup_except(jump_rel)[source]
visit_setup_finally(jump_rel)[source]
visit_setup_loop(jump_rel)[source]
visit_setup_with(jump_rel)[source]
visit_slice_0()[source]
visit_slice_1()[source]
visit_slice_2()[source]
visit_slice_3()[source]
visit_stop_code()[source]
visit_store_attr(name)[source]
visit_store_deref(free)[source]
visit_store_fast(local)[source]
visit_store_global(name)[source]
visit_store_map()[source]
visit_store_name(name)[source]
visit_store_slice_0()[source]
visit_store_slice_1()[source]
visit_store_slice_2()[source]
visit_store_slice_3()[source]
visit_store_subscr()[source]
visit_unary_convert()[source]
visit_unary_invert()[source]
visit_unary_negative()[source]
visit_unary_not()[source]
visit_unary_positive()[source]
visit_unpack_sequence(oparg)[source]
visit_with_cleanup()[source]
visit_yield_value()[source]

equip.visitors.classes

Callback the visit method for each encountered class in the program.

copyright:
  1. 2014 by Romain Gaucher (@rgaucher)
license:

Apache 2, see LICENSE for more details.

class equip.visitors.classes.ClassVisitor[source]

Bases: object

A class visitor that is triggered for all encountered TypeDeclaration.

Example, listing all types declared in the bytecode:

class TypeDeclVisitor(ClassVisitor):
  def __init__(self):
    ClassVisitor.__init__(self)

  def visit(self, typeDecl):
    print "New type: %s (parentDecl=%s)" \
          % (typeDecl.type_name, typeDecl.parent)
visit(typeDecl)[source]

equip.visitors.methods

Callback the visit method for each encountered method in the program.

copyright:
  1. 2014 by Romain Gaucher (@rgaucher)
license:

Apache 2, see LICENSE for more details.

class equip.visitors.methods.MethodVisitor[source]

Bases: object

A method visitor that is triggered for all encountered MethodDeclaration.

Example, listing all methods declared in the bytecode:

class MethodDeclVisitor(MethodVisitor):
  def __init__(self):
    MethodVisitor.__init__(self)

  def visit(self, methDecl):
    print "New method: %s:%d (parentDecl=%s)" \
          % (methDecl.method_name, methDecl.start_lineno, methDecl.parent)
visit(methodDecl)[source]

equip.visitors.modules

Callback the visit method for each encountered module in the program.

copyright:
  1. 2014 by Romain Gaucher (@rgaucher)
license:

Apache 2, see LICENSE for more details.

class equip.visitors.modules.ModuleVisitor[source]

Bases: object

visit(moduleDecl)[source]

Module contents

equip.visitors

Different visitor interfaces to traverse the bytecode, modules, classes, or methods.

copyright:
  1. 2014 by Romain Gaucher (@rgaucher)
license:

Apache 2, see LICENSE for more details.