관리-도구
편집 파일: cpp.cpython-36.pyc
3 r��W�� � @ sl d dl mZ d dlZejjdk r*eefZneZeZ d3Z dZdd� ZdZ dZdZdd� ZeZdZdd� Zdd� Zdd� Zdd� Zdd� Zd dlZd dlZd dlZd dlZejd �Zd!d"d#d$d%d&d'd(d)d*� Zd+d,� Z G d-d.� d.e!�Z"G d/d0� d0e!�Z#e$d1k�rhd dl%j&Z&e&j&� Z'd dlZe(ej)d2 �Z*e*j+� Z,e#e'�Z-e-j.e,ej)d2 � x"e-j/� Z0e0�sVP e1e-j2e0� �qFW dS )4� )� generatorsN� �CPP_ID�CPP_INTEGER� CPP_FLOAT� CPP_STRING�CPP_CHAR�CPP_WS�CPP_COMMENT1�CPP_COMMENT2� CPP_POUND� CPP_DPOUNDz+-*/%|&~^<>=!?()[]{}.,;:\'"c C s | j j| jjd�7 _| S )z\s+� )�lexer�lineno�value�count)�t� r �/usr/lib/python3.6/cpp.py�t_CPP_WS! s r z\#z\#\#z[A-Za-z_][\w_]*c C s | S )zA(((((0x)|(0X))[0-9a-fA-F]+)|(\d+))([uU][lL]|[lL][uU]|[uU]|[lL])?)r )r r r r r - s z?((\d+)(\.\d+)(e(\+|-)?(\d+))? | (\d+)e(\+|-)?(\d+))([lL]|[fF])?c C s | j j| jjd�7 _| S )z\"([^\\\n]|(\\(.|\n)))*?\"r )r r r r )r r r r �t_CPP_STRING7 s r c C s | j j| jjd�7 _| S )z(L)?\'([^\\\n]|(\\(.|\n)))*?\'r )r r r r )r r r r � t_CPP_CHAR= s r c C s8 | j jd�}| j j|7 _d| _|r.d| nd| _ | S )z(/\*(.|\n)*?\*/)r r � )r r r r �type)r Zncrr r r �t_CPP_COMMENT1C s r c C s d| _ d| _dS )z (//.*?(\n|$))r r N)r r )r r r r �t_CPP_COMMENT2L s r c C s( | j d | _| j d | _ | jjd� | S )Nr � )r r r �skip)r r r r �t_errorQ s r z\?\?[=/\'\(\)\!<>\-]�#�\�^�[�]�|�{�}�~) �=�/�'�(�)�!�<�>�-c C s t jdd� | �S )Nc S s t | j� d S )Nr ���)� _trigraph_rep�group)�gr r r �<lambda>{ s ztrigraph.<locals>.<lambda>)� _trigraph_pat�sub)�inputr r r �trigraphz s r: c @ s e Zd Zddd�ZdS )�MacroNFc C s0 || _ || _|| _|| _|r&|d | _d | _d S )Nr r2 )�namer �arglist�variadic�vararg�source)�selfr<