
.^                 @   s   d  d l  Z  d d l m Z m Z Gd d   d e  Z d Z i  Z x? e j   D]1 Z	 e	 rQ e	 j
   \ Z Z e e e  e e <qQ Wd S)    N   )tokentokenizec               @   sL   e  Z d  Z d d   Z d d   Z d d   Z d d   Z d	 d
   Z d S)Grammarc             C   sX   i  |  _  i  |  _ g  |  _ i  |  _ d g |  _ i  |  _ i  |  _ i  |  _ d |  _ d  S)Nr   EMPTY   )r   r   )	symbol2numbernumber2symbolstatesdfaslabelskeywordstokenssymbol2labelstart)self r   L/build/toolchain/mac32/python-3.5.2-openssl1.0.2u-1/lib/python3.5/grammar.py__init__L   s    							zGrammar.__init__c             C   s3   t  | d   } t j |  j | d  Wd  QRXd  S)Nwb   )openpickledump__dict__)r   filenamefr   r   r   r   W   s    zGrammar.dumpc          	   C   s<   t  | d   } t j |  } Wd  QRX|  j j |  d  S)Nrb)r   r   loadr   update)r   r   r   dr   r   r   r   \   s    zGrammar.loadc             C   sx   |  j    } x- d D]% } t | | t |  |  j    q W|  j d  d   | _ |  j d  d   | _ |  j | _ | S)Nr   r	   r   r   r   r   )zsymbol2numberznumber2symbolzdfaszkeywordsztokenszsymbol2label)	__class__setattrgetattrcopyr   r
   r   )r   newZ	dict_attrr   r   r   r$   b   s    
#zGrammar.copyc             C   s   d d l  m  } t d  | |  j  t d  | |  j  t d  | |  j  t d  | |  j  t d  | |  j  t d |  j  d  S)	Nr   )pprintZs2nZn2sr
   r   r   r   )r&   printr   r	   r
   r   r   r   )r   r&   r   r   r   reporto   s    




zGrammar.reportN)__name__
__module____qualname__r   r   r   r$   r(   r   r   r   r   r      s
   6r   a  
( LPAR
) RPAR
[ LSQB
] RSQB
: COLON
, COMMA
; SEMI
+ PLUS
- MINUS
* STAR
/ SLASH
| VBAR
& AMPER
< LESS
> GREATER
= EQUAL
. DOT
% PERCENT
` BACKQUOTE
{ LBRACE
} RBRACE
@ AT
@= ATEQUAL
== EQEQUAL
!= NOTEQUAL
<> NOTEQUAL
<= LESSEQUAL
>= GREATEREQUAL
~ TILDE
^ CIRCUMFLEX
<< LEFTSHIFT
>> RIGHTSHIFT
** DOUBLESTAR
+= PLUSEQUAL
-= MINEQUAL
*= STAREQUAL
/= SLASHEQUAL
%= PERCENTEQUAL
&= AMPEREQUAL
|= VBAREQUAL
^= CIRCUMFLEXEQUAL
<<= LEFTSHIFTEQUAL
>>= RIGHTSHIFTEQUAL
**= DOUBLESTAREQUAL
// DOUBLESLASH
//= DOUBLESLASHEQUAL
-> RARROW
)r    r   r   objectr   Z	opmap_rawZopmap
splitlineslinesplitopnamer#   r   r   r   r   <module>   s   