관리-도구
편집 파일: patcomp.cpython-310.opt-2.pyc
o 6��f� � @ s� d Z ddlZddlmZmZmZmZmZmZ ddl m Z ddl mZ G dd� de�Z d d � ZG dd� de�Zejejejdd �Zdd� Zdd� Zdd� ZdS )z#Guido van Rossum <guido@python.org>� N� )�driver�literals�token�tokenize�parse�grammar)�pytree)�pygramc @ s e Zd ZdS )�PatternSyntaxErrorN)�__name__� __module__�__qualname__� r r �6/opt/alt/python310/lib64/python3.10/lib2to3/patcomp.pyr s r c c sP � t jt jt jh}t�t�| �j�}|D ]}|\}}}}}||vr%|V qd S �N) r �NEWLINE�INDENT�DEDENTr �generate_tokens�io�StringIO�readline) �input�skip�tokensZ quintuple�type�value�start�endZ line_textr r r �tokenize_wrapper s ���r c @ s: e Zd Zd dd�Zddd�Zdd� Zd d d �Zdd� ZdS )�PatternCompilerNc C s\ |d u rt j| _t j| _n t�|�| _t �| j�| _t j| _ t j | _tj| jt d�| _d S )N)Zconvert)r Zpattern_grammarr Zpattern_symbols�symsr Zload_grammarZSymbolsZpython_grammarZ pygrammarZpython_symbols�pysymsZDriver�pattern_convert)�selfZgrammar_filer r r �__init__( s zPatternCompiler.__init__Fc C sd t |�}z | jj||d�}W n tjy# } ztt|��d �d }~ww |r-| �|�|fS | �|�S )N)�debug)r r Zparse_tokensr Z ParseErrorr �str�compile_node)r% r r'