文件操作 - backend.cpython-311.pyc
返回文件管理
返回主菜单
删除本文件
文件: /usr/lib/python3/dist-packages/pythran/__pycache__/backend.cpython-311.pyc
编辑文件内容
� cR�aE� � �j � d Z ddlmZmZmZ ddlmZmZmZmZ ddlm Z m Z mZ ddlmZm Z ddlmZmZmZmZ ddlmZmZmZmZmZ ddlmZmZmZmZ dd lmZmZmZmZm Z dd lm!Z!m"Z"m#Z#m$Z$m%Z%m&Z& ddl'm(Z( ddl)m*Z* dd l+m,Z, ddl-m.Z.m/Z/ ddl-m0Z0 ddl1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z:m;Z; ddl6m<Z<m=Z= ddl>m?Z?m@Z@ ddlAmBZBmCZC ddlDZEddlFZFddlGmHZH ddlIZI G d� de*� � ZJd'd�ZKd� ZL G d� d� � ZMd� ZN d(d�ZO d'd �ZP G d!� d"eEjQ � � ZR G d#� d$eR� � ZS G d%� d&e*� � ZTdS ))z~ This module contains all pythran backends. * Cxx dumps the AST into C++ code * Python dumps the AST into Python code � )�LocalNodeDeclarations�GlobalDeclarations�Scope)�YieldPoints� IsAssigned� ASTMatcher�AST_any)�RangeValues�PureExpressions�Dependencies)� Immediates� Ancestors)�Template�Include� Namespace�CompilationUnit)� Statement�Block�AnnotatedStatement�Typedef�Label)�Value�FunctionDeclaration�EmptyStatement�Nop)�FunctionBody�Line�ReturnStatement�Struct�Assign)�For�While� TryExcept� ExceptHandler�If�AutoFor)�OMPDirective)�Backend)�PythranSyntaxError)�operator_to_lambda�update_operator_to_lambda)�pythran_ward)�PYTYPE_TO_CTYPE_TABLE�TYPE_TO_SUFFIX)�Types)�attr_to_path�pushpop�cxxid�isstr�isnum)� isextslice�ispowi)�metadata�unparse)�isnan�isinfN)�reducec �( � � e Zd ZdZ� fd�Zd� Z� xZS )�Pythona Produces a Python representation of the AST. >>> import gast as ast, pythran.passmanager as passmanager >>> node = ast.parse("print('hello world')") >>> pm = passmanager.PassManager('test') >>> print(pm.dump(Python, node)) print('hello world') c �d �� d| _ t t | � � � � � d S �N� )�result�superr= �__init__��self� __class__s ��1/usr/lib/python3/dist-packages/pythran/backend.pyrC zPython.__init__- s, �� ���� �f�d���$�$�&�&�&�&�&� c � � t j � � }t j ||� � |� � � | _ d S �N)�io�StringIOr8 �Unparser�getvaluerA )rE �node�outputs rG �visitzPython.visit1 s5 � ���������v�&�&�&��o�o�'�'����rH )�__name__� __module__�__qualname__�__doc__rC rQ � __classcell__�rF s @rG r= r= "