← Back
Editing: static_expressions.cpython-311.pyc
� cR�a9 � �N � d Z ddlmZ G d� de� � Z G d� de� � ZdS )zD StaticExpressions gathers constant expression that involve types. � )�NodeAnalysisc �$ � � e Zd Z� fd�Zd� Z� xZS )�HasStaticExpressionc �d �� d| _ t t | � � � � � d S �NF)�result�superr �__init__��self� __class__s ��E/usr/lib/python3/dist-packages/pythran/analyses/static_expressions.pyr zHasStaticExpression.__init__ s- �� ���� �!�4�(�(�1�1�3�3�3�3�3� c �b � | � |� � | xj |j dk z c_ d S )N�is_none)� generic_visitr �attr�r �nodes r �visit_Attributez#HasStaticExpression.visit_Attribute s1 � ����4� � � ����t�y�I�-�-����r )�__name__� __module__�__qualname__r r � __classcell__�r s @r r r sG �� � � � � �4� 4� 4� 4� 4�.� .� .� .� .� .� .r r c � � � e Zd ZdZ� fd�Zd� Zd� Zd� Zd� Zd� Z d� Z d � Zd � Zd� Z d� Zd � ZeZeZeZeZeZeZeZeZ� xZS )�StaticExpressionszIdentify constant expressions.c � �� t � � | _ t � � | _ t t | � � � � � d S �N)�setr �constant_expressionsr r r r s �r r zStaticExpressions.__init__ s= �� ��e�e���$'�E�E��!� ���&�&�/�/�1�1�1�1�1r c �: � | j � |� � dS )NT)r �addr s r r# zStaticExpressions.add s � ����������tr c � � dS r � )r �_s r �not_addzStaticExpressions.not_add s � ��ur c � � t |� � dk s J d� � �d}d}|D ]&}| � |� � rd}�||| j v z }�'|o|S )N� zat least two argumentsFT)�len�visitr! )r �args�static�const�values r � match_allzStaticExpressions.match_all so � ��4�y�y�1�}�}�}�6�}�}�}������ <� <�E��z�z�%� � � <������$�";�;�;�����%�r c �J � | j |j � o| � |� � S r )r0 �valuesr# r s r �visit_BoolOpzStaticExpressions.visit_BoolOp+ s"