← Back
Editing: passmanager.cpython-311.pyc
� cR�a� � �H � d Z ddlZddlZddlZddlmZ d� Z G d� de� � Z G d� de� � Z G d � d e ej � � Z G d� de� � Z G d � de� � Z G d� de� � Z G d� de� � Z G d� de ej � � Z G d� de� � ZdS )ao This module provides classes and functions for pass management. There are two kinds of passes: transformations and analysis. * ModuleAnalysis, FunctionAnalysis and NodeAnalysis are to be subclassed by any pass that collects information about the AST. * gather is used to gather (!) the result of an analyses on an AST node. * Backend is to be sub-classed by any pass that dumps the AST content. * dump is used to dump (!) the AST using the given backend. * Transformation is to be sub-classed by any pass that updates the AST. * apply is used to apply (sic) a transformation on an AST node. � N)�timec �~ � t j dd| � � }t j dd|� � � � � S )z<Transform CamelCase naming convention into C-ish convention.z(.)([A-Z][a-z]+)z\1_\2z([a-z0-9])([A-Z]))�re�sub�lower)�name�s1s �5/usr/lib/python3/dist-packages/pythran/passmanager.py�uncamelr s7 � � ��"�H�d� 3� 3�B� �6�%�x��4�4�:�:�<�<�<� c � � e Zd ZdZd� ZdS )�AnalysisContextz{ Class that stores the hierarchy of node visited. Contains: * parent module * parent function c �"