관리-도구
편집 파일: yacc.cpython-39.pyc
a �����ԅZ������������������ ���@���s ��d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZdZdZdZ dZ dZdZdZ d Zd Zd�Zejd��dk�rleZneZejZG�dd��de�ZG�d d��de�ZG�dd��de�Zdd��Zdd��Zdadada dZ!dd��Z"dd��Z#dd��Z$dd��Z%G�dd��d�Z&G�d d!��d!�Z'G�d"d#��d#�Z(e��)d$�Z*G�d%d&��d&e�Z+G�d'd(��d(e�Z,G�d)d*��d*e�Z-d+d,��Z.G�d-d.��d.e�Z/G�d/d0��d0e�Z0G�d1d2��d2e�Z1G�d3d4��d4e�Z2d5d6��Z3d7d8��Z4G�d9d:��d:e�Z5G�d;d<��d<e2�Z6d=d>��Z7d?d@��Z8G�dAdB��dBe�Z9de deddd de ddddf dCdD�Z:dS�)E�����Nz3.11z3.10Tz parser.out�parsetab�LALR����F�(���c�������������������@���s4���e�Zd�Zdd��Zdd��ZeZdd��Zdd��ZeZd S�) � PlyLoggerc�����������������C���s ���||�_�d�S��N)�f)�selfr�����r ����,/usr/lib/python3.9/site-packages/ply/yacc.py�__init__m���s����zPlyLogger.__init__c�����������������O���s���|�j��||�d���d�S�)N� �r����write�r ����msg�args�kwargsr ���r ���r����debugp���s����zPlyLogger.debugc�����������������O���s���|�j��d||��d���d�S�)Nz WARNING: r ���r���r���r ���r ���r����warningu���s����zPlyLogger.warningc�����������������O���s���|�j��d||��d���d�S�)NzERROR: r ���r���r���r ���r ���r����errorx���s����zPlyLogger.errorN) �__name__� __module__�__qualname__r���r����infor���r���Zcriticalr ���r ���r ���r���r���l���s���r���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)� NullLoggerc�����������������C���s���|�S�r���r ���)r ����namer ���r ���r����__getattribute__���s����zNullLogger.__getattribute__c�����������������O���s���|�S�r���r ���)r ���r���r���r ���r ���r����__call__����s����zNullLogger.__call__N)r���r���r���r���r���r ���r ���r ���r���r���~���s���r���c�������������������@���s���e�Zd�ZdS�)� YaccErrorN�r���r���r���r ���r ���r ���r���r�������s���r���c�����������������C���sP���t�|��}d|v�rt�|�}t|�tkr4|d�t��d�}dt|��jt|��|f�}|S�)Nr ���z ...z<%s @ 0x%x> (%s))�repr�len�resultlimit�typer����id)�r�repr_str�resultr ���r ���r���� format_result����s����r)���c�����������������C���sB���t�|��}d|v�rt�|�}t|�dk�r(|S�dt|��jt|��f�S�d�S�)Nr �������z<%s @ 0x%x>)r!���r"���r$���r���r%���)r&���r'���r ���r ���r����format_stack_entry����s����r+���a��PLY: Don't use global functions errok(), token(), and restart() in p_error(). Instead, invoke the methods on the associated parser instance: def p_error(p): ... # Use parser.errok(), parser.token(), parser.restart() ... parser = yacc.yacc() c�������������������C���s���t��t��t��S�r���)�warnings�warn�_warnmsg�_errokr ���r ���r ���r����errok����s���� r0���c�������������������C���s���t��t��t��S�r���)r,���r-���r.����_restartr ���r ���r ���r����restart����s���� r2���c�������������������C���s���t��t��t��S�r���)r,���r-���r.����_tokenr ���r ���r ���r����token����s���� r4���c�����������������C���s<���|j�a|ja|ja|�|�}z bbbW�n�ty6���Y�n0�|S�r���)r0���r/���r4���r3���r2���r1���� NameError)� errorfuncr4����parserr&���r ���r ���r����call_errorfunc����s���� r8���c�������������������@���s���e�Zd�Zdd��Zdd��ZdS�)� YaccSymbolc�����������������C���s���|�j�S�r����r$����r ���r ���r ���r����__str__����s����zYaccSymbol.__str__c�����������������C���s���t�|��S�r�����strr;���r ���r ���r����__repr__����s����zYaccSymbol.__repr__N)r���r���r���r<���r?���r ���r ���r ���r���r9�������s���r9���c�������������������@���sn���e�Zd�Zddd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��ZdS�)�YaccProductionNc�����������������C���s���||�_�||�_d�|�_d�|�_d�S�r���)�slice�stack�lexerr7���)r ����srB���r ���r ���r���r�������s����zYaccProduction.__init__c�����������������C���sB���t�|t�rdd��|�j|�D��S�|dkr2|�j|�jS�|�j|�jS�d�S�)Nc�����������������S���s���g�|�] }|j��qS�r �����value��.0rD���r ���r ���r���� <listcomp>���������z.YaccProduction.__getitem__.<locals>.<listcomp>r���)� isinstancerA���rF���rB����r ����nr ���r ���r����__getitem__����s ���� zYaccProduction.__getitem__c�����������������C���s���||�j�|�_d�S�r���)rA���rF���)r ���rM����vr ���r ���r����__setitem__����s����zYaccProduction.__setitem__c�����������������C���s���dd��|�j�||��D��S�)Nc�����������������S���s���g�|�] }|j��qS�r ���rE���rG���r ���r ���r���rI�������rJ���z/YaccProduction.__getslice__.<locals>.<listcomp>)rA���)r ����i�jr ���r ���r����__getslice__����s����zYaccProduction.__getslice__c�����������������C���s ���t�|�j�S�r���)r"���rA���r;���r ���r ���r����__len__����s����zYaccProduction.__len__c�����������������C���s���t�|�j|�dd�S�)N�linenor�����getattrrA���rL���r ���r ���r���rU������s����zYaccProduction.linenoc�����������������C���s���||�j�|�_d�S�r���)rA���rU���)r ���rM���rU���r ���r ���r���� set_lineno��s����zYaccProduction.set_linenoc�����������������C���s,���t�|�j|�dd�}t�|�j|�d|�}||fS�)NrU���r���� endlinenorV���)r ���rM���� startlineZendliner ���r ���r����linespan��s����zYaccProduction.linespanc�����������������C���s���t�|�j|�dd�S�)N�lexposr���rV���rL���r ���r ���r���r\�����s����zYaccProduction.lexposc�����������������C���s���||�j�|�_d�S�r���)rA���r\���)r ���rM���r\���r ���r ���r���� set_lexpos��s����zYaccProduction.set_lexposc�����������������C���s,���t�|�j|�dd�}t�|�j|�d|�}||fS�)Nr\���r���� endlexposrV���)r ���rM����startpos�endposr ���r ���r����lexspan��s����zYaccProduction.lexspanc�����������������C���s���t��d�S�r���)�SyntaxErrorr;���r ���r ���r���r�����s����zYaccProduction.error)N)r���r���r���r���rN���rP���rS���rT���rU���rX���r[���r\���r]���ra���r���r ���r ���r ���r���r@�������s��� r@���c�������������������@���s\���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd d�Zddd�Z ddd�Z ddd�ZdS�)�LRParserc�����������������C���s0���|j�|�_|j|�_|j|�_||�_|�����d|�_d�S��NT) �lr_productions�productions� lr_action�action�lr_goto�gotor6����set_defaulted_states�errorok)r ���ZlrtabZerrorfr ���r ���r���r��� ��s����zLRParser.__init__c�����������������C���s ���d|�_�d�S�rd���)rl���r;���r ���r ���r���r0���(��s����zLRParser.errokc�����������������C���s@���|�j�d�d��=�|�jd�d��=�t��}d|_|�j�|��|�j��d��d�S�)N�$endr���)� statestack�symstackr9���r$����append)r ����symr ���r ���r���r2���+��s����zLRParser.restartc�����������������C���sP���i�|�_�|�j���D�]:\}}t|����}t|�dkr|d�dk�r|d�|�j�|<�qd�S��N����r���)�defaulted_statesrh����items�list�valuesr"���)r ����state�actionsZrulesr ���r ���r���rk���;��s ����zLRParser.set_defaulted_statesc�����������������C���s ���i�|�_�d�S�r���)rt���r;���r ���r ���r����disable_defaulted_statesB��s����z!LRParser.disable_defaulted_statesNFc�����������������C���sZ���|st�r.t|t�rttj�}|��|||||�S�|rD|��|||||�S�|��|||||�S�d�S�r���) � yaccdevelrK����intr����sys�stderr� parsedebug�parseopt�parseopt_notrack)r ����inputrC���r����tracking� tokenfuncr ���r ���r����parseE��s���� zLRParser.parsec����������� ������C���s���d�}g�}|�j�}|�j} |�j} |�j}td��}d} |�d��|sLddlm}�|j}||_|�|_ |d�urj|� |��|d�u�rz|j}n|}||�_g�}||�_g�}||�_ ||_d�}|�d��t��}d|_|�|��d}|�d��|�d|��||v�r(|�s|s�|��}n|���}|�st��}d|_|j}||��|�}n||�}|�d||���|�d d d�dd ��|D��dd����t|�f������|d�u�r�|dk�r�|�|��|}|�d|��|�|��d�}| r�| d8�} q�|dk��rD| |��}|j}|j}t��}||_d�|_|�r<|�d|jdd�dd ��||�d���D����d�| |d|���|���n|�d|jg�| |d��|���|�r�||�d�d���}||d<�|�r�|d�}|j|_|j|_|d�}t|d|j�|_t|d|j�|_||_ zd||�d��=�||�_!|�"|��||�d��=�|�dt#|d����|�|��| |d��|�}|�|��W�q��t$�y����|�|��|�%|dd����|����|d�}d|_d|_|}t&} d|�_'Y�q�0�q�n�|�r�|j|_|j|_|g}||_ zL||�_!|�"|��|�dt#|d����|�|��| |d��|�}|�|��W�q��t$�y@���|�|��|����|d�}d|_d|_|}t&} d|�_'Y�q�0�q�|dk�r�|d�}t|dd��}|�dt#|���|�d��|S�|d�u��r�|�(dd d�dd ��|D��dd����t|�f������| dk�s�|�j'�r�t&} d|�_'|}|jdk�r�d�}|�j)�r6|�rt*|d��s||_||�_!t+|�j)||��}|�j'�r�|}d�}q�n`|�r�t*|d ��rP|j}nd}|�rrt,j-�.d!||jf���nt,j-�.d"|j���nt,j-�.d#��d�S�nt&} t|�dk�r�|jdk�r�d�}d�}d}|d�d��=�q�|jdk�r�d�S�|jdk�r�|d�}|jdk�r*|�r$t|d |j�|_t|d$|j�|_d�}q�t��}d|_t*|d ��rP|j�|_|_t*|d$��rj|j�|_|_||_|�|��|}q�|���}|�r�|j|_|j|_|����|d�}q�t/d%��q�d�S�)&Nr���zPLY: PARSE DEBUG STARTrs�����lexrm�����zState : %sz#Defaulted state %s: Reduce using %dzStack : %sz%s . %s� c�����������������S���s���g�|�] }|j��qS�r ���r:����rH����xxr ���r ���r���rI������rJ���z'LRParser.parsedebug.<locals>.<listcomp>z Action : Shift and goto state %sz3Action : Reduce rule [%s] with %s and goto state %d�[�,c�����������������S���s���g�|�]}t�|j��qS�r ���)r+���rF���)rH���Z_vr ���r ���r���rI������rJ����]���rY���r^���zResult : %sr���FrF���zDone : Returning %szPLY: PARSE DEBUG ENDzError : %sc�����������������S���s���g�|�] }|j��qS�r ���r:���r����r ���r ���r���rI���D��rJ���rC���rU����(yacc: Syntax error at line %d, token=%s �yacc: Syntax error, token=%s� yacc: Parse error in input. EOF r\����yacc: internal parser error!!! )0rh���rj���rf���rt���r@���r���r����r����rC���r7���r����r4���rn���ro���rB���rp���r9���r$���r����pop�get�joinr>����lstripr���r"���rF���rU���r\���rW���rY���r^���rA���rx����callabler)���rb����extend�error_countrl���r���r6����hasattrr8���r}���r~���r����RuntimeError� r ���r����rC���r���r����r����� lookahead�lookaheadstackry���rj����prodrt����pslice� errorcountr����� get_tokenrn���ro����errtokenrq���rx����ltype�t�p�pname�plen�targ�t1rM���r(����tokrU���r ���r ���r���r���^��s���� *� $�� *� zLRParser.parsedebugc����������� ������C���sj��d�}g�}|�j�}|�j} |�j} |�j}td��}d} |sBddlm}�|j}||_|�|_|d�ur`|� |��|d�u�rp|j }n|}||�_ g�}||�_g�}||�_||_ d�}|�d��t��}d|_|�|��d}||v�r|s�|s�|��}n|���}|s�t��}d|_|j}||��|�}n||�}|d�u�r`|dk�rJ|�|��|}|�|��d�}| r�| d8�} q�|dk��r>| |��}|j}|j}t��}||_d�|_|�r�||�d�d���}||d<�|�r�|d�}|j|_|j|_|d�}t|d|j�|_t|d|j�|_||_zP||�d��=�||�_|�|��||�d��=�|�|��| |d��|�}|�|��W�q��t�y����|�|��|�|dd����|����|d�}d|_d|_|}t } d |�_!Y�q�0�q�n�|�r�|j|_|j|_|g}||_z8||�_|�|��|�|��| |d��|�}|�|��W�q��t�y:���|�|��|����|d�}d|_d|_|}t } d |�_!Y�q�0�q�|dk�r`|d�}t|d d��}|S�|d�u��r\| dk�s||�j!�rDt } d |�_!|}|jdk�r�d�}|�j"�r�|�r�t#|d��s�||_||�_t$|�j"||��}|�j!�rB|}d�}q�n`|�r2t#|d��r�|j}nd}|�rt%j&�'d ||jf���nt%j&�'d|j���nt%j&�'d��d�S�nt } t|�dk�rz|jdk�rzd�}d�}d}|d�d��=�q�|jdk�r�d�S�|jdk�r,|d�}|jdk�r�|�r�t|d|j�|_t|d|j�|_d�}q�t��}d|_t#|d��r�|j�|_|_t#|d��r|j�|_|_||_|�|��|}q�|���}|�rJ|j|_|j|_|����|d�}q�t(d��q�d�S�)Nr���rs���r����rm���r����rY���r^���r���FrF���rC���rU���r����r����r����r\���r����))rh���rj���rf���rt���r@���r����r����rC���r7���r����r4���rn���ro���rB���rp���r9���r$���r����r����r���r"���rF���rU���r\���rW���rY���r^���rA���rx���r����rb���r����r����rl���r6���r����r8���r}���r~���r���r����r����r ���r ���r���r�������sV��� zLRParser.parseoptc�����������������C���s���d�}g�}|�j�}|�j} |�j} |�j}td��}d} |sBddlm}�|j}||_|�|_|d�ur`|� |��|d�u�rp|j }n|}||�_ g�}||�_g�}||�_||_ d�}|�d��t��}d|_|�|��d}||v�r|s�|s�|��}n|���}|s�t��}d|_|j}||��|�}n||�}|d�u�r|dk�rJ|�|��|}|�|��d�}| r�| d8�} q�|dk��r�| |��}|j}|j}t��}||_d�|_|�rR||�d�d���}||d<�||_zP||�d��=�||�_|�|��||�d��=�|�|��| |d��|�}|�|��W�q��t�yL���|�|��|�|dd����|����|d�}d|_d|_|}t} d|�_Y�q�0�q�n�|g}||_z8||�_|�|��|�|��| |d��|�}|�|��W�q��t�y����|�|��|����|d�}d|_d|_|}t} d|�_Y�q�0�q�|dk�r|d�}t|dd��}|S�|d�u��r�| dk�s |�j�r�t} d|�_|}|jdk�r>d�}|�j�r�|�r^t|d ��s^||_||�_t |�j||��}|�j�r�|}d�}q�n`|�r�t|d ��r�|j!}nd}|�r�t"j#�$d||jf���nt"j#�$d|j���nt"j#�$d ��d�S�nt} t|�dk�r|jdk�rd�}d�}d}|d�d��=�q�|jdk�r.d�S�|jdk�r�|d�}|jdk�rTd�}q�t��}d|_t|d ��rz|j!�|_!|_%t|d��r�|j&�|_&|_'||_|�|��|}q�|���}|����|d�}q�t(d��q�d�S�)Nr���rs���r����rm���r����r���FrF���rC���rU���r����r����r����r\���r����))rh���rj���rf���rt���r@���r����r����rC���r7���r����r4���rn���ro���rB���rp���r9���r$���r����r����r���r"���rF���rA���rx���r����rb���r����r����rl���rW���r6���r����r8���rU���r}���r~���r���rY���r\���r^���r����)r ���r����rC���r���r����r����r����r����ry���rj���r����rt���r����r����r����r����rn���ro���r����rq���rx���r����r����r����r����r����r����rM���r(���r����rU���r ���r ���r���r�������s6��� zLRParser.parseopt_notrack)NNFFN)NNFFN)NNFFN)NNFFN)r���r���r���r���r0���r2���rk���rz���r����r���r����r����r ���r ���r ���r���rc�����s��� ��] ��4rc���z^[a-zA-Z0-9_-]+$c�������������������@���sR���e�Zd�ZdZddd�Zdd��Zd d ��Zdd��Zd d��Zdd��Z dd��Z dd��ZdS�)� Productionr�����rightr���Nr����c����������� ������C���s����||�_�t|�|�_||�_||�_d�|�_||�_||�_||�_t |�j�|�_ g�|�_ |�jD�]}||�j vrL|�j �|��qLg�|�_d�|�_ |�jr�d|�j�d�|�j�f�|�_nd|�j��|�_d�S��N�%s -> %sr����z %s -> <empty>)r����tupler�����number�funcr�����file�line�precr"����usymsrp����lr_items�lr_nextr����r>���) r ���r����r���r����� precedencer����r����r����rD���r ���r ���r���r���!��s$���� zProduction.__init__c�����������������C���s���|�j�S�r���r=���r;���r ���r ���r���r<���?��s����zProduction.__str__c�����������������C���s���dt�|���d�S�)NzProduction(�)r=���r;���r ���r ���r���r?���B��s����zProduction.__repr__c�����������������C���s ���t�|�j�S�r���)r"���r����r;���r ���r ���r���rT���E��s����zProduction.__len__c�����������������C���s���dS��Nrs���r ���r;���r ���r ���r����__nonzero__H��s����zProduction.__nonzero__c�����������������C���s ���|�j�|�S�r���)r�����r ����indexr ���r ���r���rN���K��s����zProduction.__getitem__c�������������� ���C���s����|t�|�j�krd�S�t|�|�}z|�j|j|d���|_W�n�ttfyR���g�|_Y�n0�z|j|d��|_W�n�ty����d�|_Y�n0�|S�r����)r"���r�����LRItem� Prodnames�lr_after� IndexError�KeyError� lr_before)r ���rM���r����r ���r ���r����lr_itemO��s���� zProduction.lr_itemc�����������������C���s���|�j�r||�j��|�_d�S�r����r����r�����r ����pdictr ���r ���r����bind_��s����zProduction.bind)r����Nr����r���)r���r���r����reducedr���r<���r?���rT���r����rN���r����r����r ���r ���r ���r���r������s��� r����c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �MiniProductionc�����������������C���s.���||�_�||�_||�_d�|�_||�_||�_||�_d�S�r���)r���r"���r����r����r����r����r>���)r ���r>���r���r"���r����r����r����r ���r ���r���r���h��s����zMiniProduction.__init__c�����������������C���s���|�j�S�r���r=���r;���r ���r ���r���r<���q��s����zMiniProduction.__str__c�����������������C���s ���d|�j��S�)NzMiniProduction(%s)r=���r;���r ���r ���r���r?���t��s����zMiniProduction.__repr__c�����������������C���s���|�j�r||�j��|�_d�S�r���r����r����r ���r ���r���r����x��s����zMiniProduction.bindN)r���r���r���r���r<���r?���r����r ���r ���r ���r���r����g��s��� r����c�������������������@���s$���e�Zd�Zdd��Zdd��Zdd��ZdS�)r����c�����������������C���sZ���|j�|�_�t|j�|�_|j|�_||�_i�|�_|�j�|d��t|�j�|�_t|�j�|�_|j |�_ d�S�)N�.) r���rv���r����r�����lr_index� lookaheads�insertr����r"���r����)r ���r����rM���r ���r ���r���r������s����zLRItem.__init__c�����������������C���s,���|�j�rd|�jd�|�j��f�}n d|�j�}|S�r����)r����r���r����)r ���rD���r ���r ���r���r<������s���� zLRItem.__str__c�����������������C���s���dt�|���d�S�)NzLRItem(r����r=���r;���r ���r ���r���r?������s����zLRItem.__repr__N)r���r���r���r���r<���r?���r ���r ���r ���r���r�������s���r����c�����������������C���s6���t�|��d�}|dkr2|�|�|v�r(|�|�S�|d8�}qd�S�rr���)r"���)Zsymbols� terminalsrQ���r ���r ���r����rightmost_terminal���s���� r����c�������������������@���s���e�Zd�ZdS�)�GrammarErrorNr ���r ���r ���r ���r���r�������s���r����c�������������������@���s����e�Zd�Zdd��Zdd��Zdd��Zdd��Zd$dd �Zd%dd�Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zd&d d!�Zd"d#��Zd S�)'�Grammarc�����������������C���sb���d�g|�_�i�|�_i�|�_i�|�_|D�]}g�|�j|<�qg�|�jd<�i�|�_i�|�_i�|�_i�|�_t��|�_ d�|�_ d�S��Nr���)�Productionsr�����Prodmap� Terminals�Nonterminals�First�Follow� Precedence�set�UsedPrecedence�Start)r ���r�����termr ���r ���r���r������s���� zGrammar.__init__c�����������������C���s ���t�|�j�S�r���)r"���r����r;���r ���r ���r���rT������s����zGrammar.__len__c�����������������C���s ���|�j�|�S�r���)r����r����r ���r ���r���rN������s����zGrammar.__getitem__c�����������������C���sL���|�j�d�gksJ�d��||�jv�r*td|���|dvr:td��||f|�j|<�d�S�)Nz2Must call set_precedence() before add_production()z,Precedence already specified for terminal %r)�leftr�����nonassocz:Associativity must be one of 'left','right', or 'nonassoc')r����r����r����)r ���r�����assoc�levelr ���r ���r����set_precedence���s���� zGrammar.set_precedenceNr����r���c�������������� ���C���s���||�j�v�rtd|||f���|dkr6td|||f���t�|�sRtd|||f���t|�D�]�\}}|d�dv�r�zLt|�}t|�dkr�td||||f���||�j�vr�g�|�j�|<�|||<�W�qZW�n�ty����Y�n0�t�|�sZ|d krZtd ||||f���qZd |v��r�|d�d k�rtd||f���|d �d k�r<td||f���|d�} |�j� | �} | �sjtd||| f���n|�j �| ��|d d��=�nt||�j��} |�j� | d�} d||f�}||�j v��r�|�j |�}td|||f�d|j|jf����t|�j�} ||�jv�r�g�|�j|<�|D�]J}||�j�v��r&|�j�|��| ��n&||�jv�r<g�|�j|<�|�j|��| ���qt| ||| |||�}|�j�|��||�j |<�z|�j|��|��W�n �t�y����|g|�j|<�Y�n0�d�S�)Nz7%s:%d: Illegal rule name %r. Already defined as a tokenr���z5%s:%d: Illegal rule name %r. error is a reserved wordz%s:%d: Illegal rule name %rr���z'"rs���zA%s:%d: Literal token %s in rule %r may only be a single characterz%precz!%s:%d: Illegal name %r in rule %rr����z+%s:%d: Syntax error. Nothing follows %%prec���zH%s:%d: Syntax error. %%prec can only appear at the end of a grammar rulez/%s:%d: Nothing known about the precedence of %rr����r����z%s:%d: Duplicate rule %s. zPrevious definition at %s:%d)r����r�����_is_identifier�match� enumerate�evalr"���rb���r����r����r�����addr����r����r����r����r����r����rp���r����r����r����)r ����prodname�symsr����r����r����rM���rD����cZprecnameZprodprec�map�mZpnumberr����r����r ���r ���r����add_production��sv���� � � � zGrammar.add_productionc�����������������C���sT���|s|�j�d�j}||�jvr&td|���tdd|g�|�j�d<�|�j|��d��||�_d�S�)Nrs���zstart symbol %s undefinedr����S')r����r���r����r����r����rp���r����)r ����startr ���r ���r���� set_startc��s���� zGrammar.set_startc��������������������s>�������fdd���t�������jd�jd����fdd��jD��S�)Nc��������������������sB���|��v�rd�S����|����j�|�g��D�]}|jD�]}��|��q.q$d�S�r���)r����r����r����r����)rD���r����r&�����mark_reachable_from� reachabler ���r ���r���r����v��s���� z5Grammar.find_unreachable.<locals>.mark_reachable_fromr���c��������������������s���g�|�]}|��vr|�qS�r ���r ���rG���)r����r ���r���rI������rJ���z,Grammar.find_unreachable.<locals>.<listcomp>)r����r����r����r����r;���r ���r����r����find_unreachables��s����zGrammar.find_unreachablec�����������������C���s����i�}|�j�D�]}d||<�q d|d<�|�jD�]}d||<�q&d}|�j���D�]N\}}|D�]@}|jD�]}||�sXd}�qrqXd}|rN||�s�d||<�d}�qBqNqB|s4q�q4g�} |���D�]4\}} | s�||�jvr�||�j�vr�|dkr�q�| �|��q�| S�)NTrm���Fr���)r����r����r����ru���r����rp���)r ���Z terminatesr����rM����some_change�plr����rD���Zp_terminates�infiniter����r ���r ���r����infinite_cycles���s8���� zGrammar.infinite_cyclesc�����������������C���sP���g�}|�j�D�]@}|sq |jD�].}||�jvr||�jvr|dkr|�||f��qq |S�r����)r����r����r����r����rp���)r ���r(���r����rD���r ���r ���r����undefined_symbols���s���� zGrammar.undefined_symbolsc�����������������C���s2���g�}|�j����D�]\}}|dkr|s|�|��q|S�r����)r����ru���rp���)r ���Z unused_tokrD���rO���r ���r ���r����unused_terminals���s ����zGrammar.unused_terminalsc�����������������C���s8���g�}|�j����D�]$\}}|s|�j|�d�}|�|��q|S��Nr���)r����ru���r����rp���)r ���Zunused_prodrD���rO���r����r ���r ���r����unused_rules���s����zGrammar.unused_rulesc�����������������C���s@���g�}|�j�D�]0}||�jv�s ||�jv�s |�||�j�|�d�f��q |S�r���)r����r����r����rp���)r ���ZunusedZtermnamer ���r ���r����unused_precedence���s ���� zGrammar.unused_precedencec�����������������C���sZ���g�}|D�]B}d}|�j�|�D�]$}|dkr,d}q||vr|�|��q|rFq�qVq|�d��|S�)NF�<empty>T)r����rp���)r ���Zbetar(����xZx_produces_emptyr���r ���r ���r����_first��s���� zGrammar._firstc�����������������C���s����|�j�r|�j�S�|�jD�]}|g|�j�|<�qdg|�j�d<�|�jD�]}g�|�j�|<�q6d}|�jD�]H}|�j|�D�]8}|��|j�D�]&}||�j�|�vrn|�j�|��|��d}qnq^qP|sFq�qF|�j�S�)Nrm���FT)r����r����r����r����r��r����rp���)r ���r����rM���r����r����r���r ���r ���r���� compute_first.��s"���� zGrammar.compute_firstc����������� ������C���s<��|�j�r|�j�S�|�js|�����|�jD�]}g�|�j�|<�q |s@|�jd�j}dg|�j�|<�d}|�jdd���D�]�}t|j�D�]�\}}||�jv�rl|��|j|d�d����}d}|D�]:} | dkr�| |�j�|�vr�|�j�|�� | ��d}| dkr�d}q�|s�|t |j�d�krl|�j�|j�D�]*} | |�j�|�v��r�|�j�|�� | ��d}��q�qlq^|sL�q6qL|�j�S�)Nrs���rm���Fr��T)r����r����r��r����r����r���r����r����r��rp���r"���) r ���r�����k�didaddr����rQ����BZfstZhasemptyr���r ���r ���r����compute_followS��s:���� zGrammar.compute_followc�������������� ���C���s����|�j�D�]�}|}d}g�}|t|�kr(d�}npt||�}z|�j|j|d���|_W�n�ttfyh���g�|_Y�n0�z|j|d��|_W�n�ty����d�|_Y�n0�||_ |s�q�|� |��|}|d7�}q||_qd�S��Nr���rs���)r����r"���r����r����r����r����r����r����r����r����rp���r����)r ���r����ZlastlrirQ���r����Zlrir ���r ���r���� build_lritems���s,���� zGrammar.build_lritems)Nr����r���)N)N)r���r���r���r���rT���rN���r����r����r����r����r����r����r����r��r��r��r��r ��r��r ���r ���r ���r���r�������s ���$ T @#% ;r����c�������������������@���s���e�Zd�ZdS�)�VersionErrorNr ���r ���r ���r ���r���r �����s���r ��c�������������������@���s,���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd S�) �LRTablec�����������������C���s���d�|�_�d�|�_d�|�_d�|�_d�S�r���)rg���ri���re���� lr_methodr;���r ���r ���r���r������s����zLRTable.__init__c�����������������C���sz���t�|tj�r|}ntd|���tj|�}|jtkr:td��|j |�_ |j|�_g�|�_ |jD�]}|�j �t|����qV|j|�_|jS�)N� import %s�&yacc table file version is out of date)rK����types� ModuleType�execr}����modulesZ_tabversion�__tabversion__r ��Z _lr_actionrg���Z_lr_gotori���re���Z_lr_productionsrp���r����Z _lr_methodr��Z _lr_signature)r ����moduler���r����r ���r ���r���� read_table���s���� zLRTable.read_tablec�����������������C���s����zdd�l�}W�n�ty&���dd�l}Y�n0�tj�|�s8t�t|d�}|�|�}|tkr\t d��|�|�|�_ |�|�}|�|�|�_|�|�|�_|�|�}g�|�_ |D�]}|�j �t|����q�|����|S�)Nr����rbr��)�cPickle�ImportError�pickle�os�path�exists�open�loadr��r ��r��rg���ri���re���rp���r�����close)r ����filenamer��Zin_fZ tabversion� signaturerf���r����r ���r ���r����read_pickle���s(���� zLRTable.read_picklec�����������������C���s���|�j�D�]}|�|��qd�S�r���)re���r����)r ���r����r����r ���r ���r����bind_callables���s���� zLRTable.bind_callablesN)r���r���r���r���r��r%��r&��r ���r ���r ���r���r�����s���r��c�������������� ���C���sL���i�}|�D�]}d||<�qg�}i�}|�D�]$}||�dkr"t�|||||�||��q"|S�r���)�traverse)�X�R�FP�Nr��rB����Fr ���r ���r����digraph ��s���� r-��c�������������� ���C���s����|��|���t|�}|||�<�||��||�<�||��}|D�]f} || �dkrVt| ||||||��t||��|| ��||�<�|�| g��D�]} | ||��vrx||����| ��qxq2||��|kr�t||d�<�||��||d�<�|���}||�kr�t||d�<�||��||d�<�|���}q�d�S�)Nr���r����)rp���r"���r'���minr�����MAXINTr����)r��r+��rB���r,��r(��r)��r*���d�rel�y�a�elementr ���r ���r���r'����s(���� r'��c�������������������@���s���e�Zd�ZdS�)� LALRErrorNr ���r ���r ���r ���r���r5��+��s���r5��c�������������������@���s����e�Zd�Zd$dd�Zdd��Zdd��Zd d ��Zdd��Zd d��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zd%d d!�Zd&d"d#�ZdS�)'�LRGeneratedTabler���Nc�����������������C���s����|dvrt�d|���||�_||�_|s*t��}||�_i�|�_i�|�_|j|�_i�|�_ i�|�_ d|�_d|�_d|�_ g�|�_g�|�_g�|�_|�j����|�j����|�j����|�����d�S�)N)ZSLRr���zUnsupported method %sr���)r5���grammarr��r����logrg���ri���r����re���� lr_goto_cache�lr0_cidhash� _add_countZsr_conflictZrr_conflict� conflicts�sr_conflicts�rr_conflictsr��r��r ���lr_parse_table)r ���r7���methodr8��r ���r ���r���r���6��s,���� zLRGeneratedTable.__init__c�����������������C���sn���|��j�d7��_�|d�d���}d}|rjd}|D�]<}|jD�]0}t|dd�|�j�krLq4|�|j��|�j�|_d}q4q*q|S�)Nrs���TF� lr0_addedr���)r;��r����rW���rp���r����rA��)r ����I�Jr��rR���r��r ���r ���r����lr0_closure[��s���� zLRGeneratedTable.lr0_closurec����������� ������C���s����|�j��t|�|f�}|r|S�|�j��|�}|s:i�}||�j�|<�g�}|D�]H}|j}|rB|j|krB|�t|��}|s|i�}||t|�<�|�|��|}qB|�d�}|s�|r�|��|�}||d<�n||d<�||�j�t|�|f<�|S�)Nrm���)r9��r����r%���r����r����rp���rD��) r ���rB��r���grD���Zgsr����rM����s1r ���r ���r����lr0_gotou��s2���� zLRGeneratedTable.lr0_gotoc����������� ������C���s����|���|�jjd�jg�g}d}|D�]}||�jt|�<�|d7�}q d}|t|�k�r�||�}|d7�}i�}|D�]}|jD�]}d�||<�qnqd|D�]@}|��||�}|r�t|�|�jv�r�q�t|�|�jt|�<�|� |��q�q@|S�r��) rD��r7��r����r����r:��r%���r"���r����rG��rp���) r ����CrQ���rB��Zasyms�iirD���r��rE��r ���r ���r���� lr0_items���s(���� zLRGeneratedTable.lr0_itemsc�����������������C���sx���t���}d}|�jjdd���D�]@}|jdkr6|�|j��q|jD�]}||vr<�qq<|�|j��qt|�|krjqtt|�}q |S�r��)r����r7��r����r"���r����r���r����)r ����nullableZnum_nullabler����r����r ���r ���r����compute_nullable_nonterminals���s���� z.LRGeneratedTable.compute_nullable_nonterminalsc�����������������C���sj���g�}t�|�D�]X\}}|D�]J}|j|jd�k�r||j|jd��f}|d�|�jjv�r||vr|�|��qq|S�r����)r����r����r"���r����r7��r����rp���)r ���rH���transZstatenorx���r����r����r ���r ���r����find_nonterminal_transitions���s����z-LRGeneratedTable.find_nonterminal_transitionsc����������� ������C���s����|\}}g�}|���||�|�}|D�]B}|j|jd�k�r |j|jd��} | |�jjv�r | |vr |�| ��q |dkr�||�jjd�jd�kr�|�d��|S�)Nrs���r���rm���)rG��r����r"���r����r7��r����rp���r����) r ���rH��rM��rK��rx���r+���termsrE��r����r3��r ���r ���r����dr_relation ��s���� zLRGeneratedTable.dr_relationc�����������������C���sr���g�}|\}}|���||�|�}|�j�t|�d�}|D�]:} | j| jd�k�r2| j| jd��} | |v�r2|�|| f��q2|S�)Nr����rs���)rG��r:��r����r%���r����r"���r����rp���)r ���rH��rM���emptyr1��rx���r+��rE��rR���r����r3��r ���r ���r����reads_relation ��s����zLRGeneratedTable.reads_relationc�����������������C���s���i�}i�}i�}|D�]}d||<�q|D��]�\}} g�} g�}||�D��],}|j�| krNq<|j} |}| |jd�k�r�| d�} |j| �}||f|v�r�| d�}||jk�r�|j|�|�jjv�r�q�|j|�|vr�q�|d�}q�|�||f��|��||�|�}|�j� t |�d�}qX||�D�]j}|j�|j�k�rq�|j|jk�r"q�d}||jk��rZ|j|�|j|d��k�rNq�|d�}�q&| �||f��q�q<|D�]*}||v�r�g�||<�||��|| f���qp| ||| f<�q"||fS�)Nrs���r����r���)r���r����r"���r����r7��r����rp���rG��r:��r����r%���)r ���rH��rM��rK��ZlookdictZincludedictZdtransr����rx���r+��ZlookbZincludesr����r����rR���ZlirE��r&���rQ���r ���r ���r����compute_lookback_includesD ��sX���� z*LRGeneratedTable.compute_lookback_includesc��������������������s0�������fdd�}����fdd�}t�|||�}|S�)Nc��������������������s��������|���S�r���)rP���r���rH��rK��r ���r ���r����<lambda>� ��rJ���z4LRGeneratedTable.compute_read_sets.<locals>.<lambda>c��������������������s��������|���S�r���)rR��rT��rU��r ���r���rV��� ��rJ����r-��)r ���rH���ntransrK��r*��r)��r,��r ���rU��r����compute_read_sets� ��s����z"LRGeneratedTable.compute_read_setsc��������������������s(����fdd�}��fdd�}t�|||�}|S�)Nc��������������������s�����|��S�r���r ���rT��)�readsetsr ���r���rV��� ��rJ���z6LRGeneratedTable.compute_follow_sets.<locals>.<lambda>c��������������������s�������|�g��S�r���)r����rT��)�inclsetsr ���r���rV��� ��rJ���rW��)r ���rX��rZ��r[��r*��r)��r,��r ���)r[��rZ��r����compute_follow_sets� ��s����z$LRGeneratedTable.compute_follow_setsc����������� ������C���sl���|����D�]^\}}|D�]P\}}||jvr0g�|j|<�|�|g��}|D�]"}||j|�vr@|j|��|��q@qqd�S�r���)ru���r����r����rp���) r ���Z lookbacksZ followsetrM��Zlbrx���r����r���r3��r ���r ���r����add_lookaheads� ��s���� zLRGeneratedTable.add_lookaheadsc�����������������C���sP���|�����}|��|�}|��|||�}|��|||�\}}|��|||�}|��||��d�S�r���)rL��rN��rY��rS��r\��r]��)r ���rH��rK��rM��rZ��ZlookdZincludedZ followsetsr ���r ���r����add_lalr_lookaheads� ��s���� z$LRGeneratedTable.add_lalr_lookaheadsc�����������$��� ���C���s��|�j�j}|�j�j}|�j}|�j}|�j}i�}|�d|�j��|����}|�jdkrP|�� |��d}|D��]�} g�} i�}i�}i�} |�d��|�d|��|�d��| D�]}|�d|j |��q�|�d��| D��]�}|j|jd�k�r|j dkr�d|d <�||d <��q�|�jdk�r|j|�}n|�j�j|j �}|D��]�}| �||d |j |f�f��|�|�}|d�u�r�|dk�r*|�|d�\}}||j �j\}}||k��s�||k�r�|dk�r�|j �||<�|||<�|�s�|�s�|�d |��|�j�||df��||j ��jd7��_nB||k�r|dk�rd�||<�n$|�s�|�d|��|�j�||df��n�|dk��r�||��}||j �}|j|jk�r�|j �||<�|||<�||�}}||j ��jd7��_||j ��jd8��_n ||�}}|�j�|||f��|�d|||�j ||���ntd|���n(|j �||<�|||<�||j ��jd7��_�qq�|j}|j|d��}||�j�jv�r�|��| |�}|�j�t|�d�}|dkr�| �||d|�f��|�|�}|d�u�r�|dk�r�||k�r�td|���n�|dk��r�|�|d�\}}|||�j �j\}}||k�s�||k�r<|dk�r<|||�j ��jd8��_|||<�|||<�|�s�|�d|��|�j�||df��nH||k�rZ|dk�rZd�||<�n*|�s�|�s�|�d |��|�j�||df��ntd|���q�|||<�|||<�q�i�}| D�]>\}}}||v��r�|||�u��r�|�d||��d|||f<��q�|�d��d}| D�]P\}}}||v��r�|||�u�r�||f|v�r�|�d||��d}d|||f<��q�|�rb|�d��i�} | D�]*}!|!jD�]}"|"|�j�jv��rtd�| |"<��qt�qj| D�]D}#|��| |#�}|�j�t|�d�}|dk�r�|| |#<�|�d|#|���q�|||<�|||<�| ||<�|d7�}qXd�S�)NzParsing method: %sr���r���r����zstate %dz (%d) %srs���r����rm���zreduce using rule %d (%s)r����r����z3 ! shift/reduce conflict for %s resolved as reduce�reducer����z2 ! shift/reduce conflict for %s resolved as shift�shiftz= ! reduce/reduce conflict for %s resolved using rule %d (%s)zUnknown conflict in state %dr����zshift and go to state %dz Shift/shift conflict in state %dr����z %-15s %sz ! %-15s [ %s ]z" %-30s shift and go to state %d) r7��r����r����ri���rg���r8��r���r��rJ��r^��r����r"���r����r���r����r����rp���r����r����r=��r����r����r>��r5��r����r����rG��r:��r%���r���r����r����)$r ���r����r����rj���rh���r8��ZactionprH���strB��ZactlistZ st_actionZ st_actionpZst_gotor����Zlaheadsr3��r&���ZsprecZslevelZrprecZrlevelZoldp�ppZchosenpZrejectprQ���rE��rR���Z _actprintr����Znot_usedZnkeysrI��rD���rM���r ���r ���r���r?��� ��s��� � zLRGeneratedTable.lr_parse_tabler����c�����������������C���s���t�|tj�rtd��|�d�d�}tj�||�d�}�z8t|d�}|� dtj� |�t|�j|f���d}|�r`i�}|�j ���D�]T\} } | ���D�]B\}}|�|�} | s�g�g�f} | ||<�| d��| ��| d��|��q�qz|� d ��|���D�]f\}}|� d |���|d�D�]} |� d| ����q�|� d��|d�D�]} |� d| ����q(|� d ��q�|� d��|� d��nF|� d��|�j ���D�]&\}}|� d|d�|d�|f����qt|� d��|�r�i�}|�j���D�]Z\} } | ���D�]F\}}|�|�} | �s�g�g�f} | ||<�| d��| ��| d��|���qʐq�|� d��|���D�]h\}}|� d |���|d�D�]} |� d| ����qF|� d��|d�D�]} |� d| ����qn|� d ���q(|� d��|� d��nF|� d��|�j���D�]&\}}|� d|d�|d�|f����q�|� d��|� d��|�jD�]Z}|j�r:|� d|j|j|j|jtj� |j�|jf���n|� dt|�|j|jf����q�|� d��|����W�n(�t�y��}�z��W�Y�d�}~n d�}~0�0�d�S�)Nz"Won't overwrite existing tabmoduler����r����z.py�wz� # %s # This file is automatically generated. Do not edit. # pylint: disable=W,C,R _tabversion = %r _lr_method = %r _lr_signature = %r rs���r���z _lr_action_items = {z%r:([z%r,z],[z]),z} z� _lr_action = {} for _k, _v in _lr_action_items.items(): for _x,_y in zip(_v[0],_v[1]): if not _x in _lr_action: _lr_action[_x] = {} _lr_action[_x][_k] = _y del _lr_action_items z _lr_action = { z(%r,%r):%r,z _lr_goto_items = {z� _lr_goto = {} for _k, _v in _lr_goto_items.items(): for _x, _y in zip(_v[0], _v[1]): if not _x in _lr_goto: _lr_goto[_x] = {} _lr_goto[_x][_k] = _y del _lr_goto_items z _lr_goto = { z_lr_productions = [ z (%r,%r,%d,%r,%r,%d), z (%r,%r,%d,None,None,None), z] )rK���r��r���IOError�splitr��r��r����r ��r����basenamer��r��rg���ru���r����rp���ri���re���r����r>���r���r"���r����r����r"��)r ���� tabmodule� outputdirr$��Zbasemodulenamer#��r���Zsmallerru���rD���Zndr���rO���rQ���r��r�����er ���r ���r����write_table� ��s����� � � zLRGeneratedTable.write_tablec�����������������C���s��zdd�l�}W�n�ty&���dd�l}Y�n0�t|d���}|�t|t��|�|�j|t��|�||t��|�|�j|t��|�|�j |t��g�}|�j D�]T}|jr�|�|j |j|j|jtj�|j�|jf��q�|�t |�|j|jd�d�d�f��q�|�||t��W�d�����n1��s0����Y��d�S�)Nr����wb)r��r��r��r ���dumpr���pickle_protocolr��rg���ri���re���r����rp���r>���r���r"���r��r��rf��r����r����)r ���r#��r$��r��ZoutfZoutpr����r ���r ���r����pickle_table"��s ���� , zLRGeneratedTable.pickle_table)r���N)r����r����)r����)r���r���r���r���rD��rG��rJ��rL��rN��rP��rR��rS��rY��r\��r]��r^��r?��rj��rn��r ���r ���r ���r���r6��5��s"��� %#8+P�B {r6��c�����������������C���s0���t��|��}|j���}|j|jkr,|�|j��|S�r���)r}���� _getframe� f_globals�copy�f_locals�update)Zlevelsr���Zldictr ���r ���r����get_caller_module_dictE��s ���� rt��c�������������� ���C���s����g�}|�����}d�}|}|D�]�}|d7�}|���}|s2qz�|d�dkrf|sTtd||f���|} |dd���} n@|d�} | }|dd���} |d�}|dkr�|dkr�td||f���|�||| | f��W�q�ty������Y�q�ty����td |||���f���Y�q0�q|S�) Nrs���r����|z%s:%d: Misplaced '|'�����:z::=z!%s:%d: Syntax error. Expected ':'z%s:%d: Syntax error in rule %r)� splitlinesre��rb���rp���� Exception�strip)�docr����r����r7��ZpstringsZlastpZdlineZpsr����r����r����Zassignr ���r ���r���� parse_grammarQ��s6����r|��c�������������������@���s����e�Zd�Zd dd�Zdd��Zdd��Zdd ��Zd d��Zdd ��Zdd��Z dd��Z dd��Zdd��Zdd��Z dd��Zdd��Zdd��Zdd��ZdS�)!� ParserReflectNc�����������������C���sL���||�_�d�|�_d�|�_d�|�_t��|�_g�|�_d|�_|d�u�rBtt j �|�_n||�_d�S�)NF)r����r����� error_func�tokensr����r��r7��r���r���r}���r~���r8��)r ���r����r8��r ���r ���r���r���{��s����zParserReflect.__init__c�����������������C���s,���|������|�����|�����|�����|�����d�S�r���)� get_start�get_error_func� get_tokens�get_precedence�get_pfunctionsr;���r ���r ���r����get_all���s ����zParserReflect.get_allc�����������������C���s6���|������|�����|�����|�����|�����|�����|�jS�r���)�validate_start�validate_error_func�validate_tokens�validate_precedence�validate_pfunctions�validate_modulesr���r;���r ���r ���r����validate_all���s����zParserReflect.validate_allc�������������� ���C���s����g�}zr|�j�r|�|�j���|�jr:|�d�dd��|�jD�����|�jrR|�d�|�j���|�jD�]}|d�rX|�|d���qXW�n�ttfy����Y�n0�d�|�S�)Nr����c�����������������S���s���g�|�]}d���|��qS�)r����)r����)rH���r����r ���r ���r���rI������rJ���z+ParserReflect.signature.<locals>.<listcomp>r����r���)r����rp���r����r����r���pfuncs� TypeError� ValueError)r ����partsr���r ���r ���r���r$�����s���� zParserReflect.signaturec�������������� ���C���s����t��d�}|�jD�]�}zt�|�\}}W�n�ty<���Y�qY�n0�i�}t|�D�]^\}}|d7�}|�|�}|rJ|�d�}|� |�} | s�|||<�qJt� |�} |�j�d| ||| ��qJqd�S�)Nz\s*def\s+(p_[a-zA-Z_0-9]*)\(rs���z;%s:%d: Function %s redefined. Previously defined on line %d) �re�compiler���inspectZgetsourcelinesrd��r����r�����groupr����� getsourcefiler8��r���)r ���Zfrer���linesZlinenZ counthashr����r����r����prevr#��r ���r ���r���r������s&���� �zParserReflect.validate_modulesc�����������������C���s���|�j��d�|�_d�S�)Nr����)r����r����r����r;���r ���r ���r���r������s����zParserReflect.get_startc�����������������C���s&���|�j�d�ur"t|�j�t�s"|�j�d��d�S�)Nz'start' must be a string)r����rK����string_typesr8��r���r;���r ���r ���r���r������s���� zParserReflect.validate_startc�����������������C���s���|�j��d�|�_d�S�)N�p_error)r����r����r~��r;���r ���r ���r���r������s����zParserReflect.get_error_funcc�����������������C���s����|�j�r�t|�j�tj�rd}n*t|�j�tj�r.d}n|�j�d��d|�_d�S�|�j�jj}|�j�jj }t �|�j��}|�j� |��|�j�jj|�}|dkr�|�j�d||��d|�_d�S�)Nr���rs���z2'p_error' defined, but is not a function or methodTz$%s:%d: p_error() requires 1 argument)r~��rK���r���FunctionType� MethodTyper8��r����__code__�co_firstlineno�co_filenamer���� getmoduler��r�����co_argcount)r ���ZismethodZelineZefiler��Zargcountr ���r ���r���r������s ���� z!ParserReflect.validate_error_funcc�����������������C���sr���|�j��d�}|s&|�j�d��d|�_d�S�t|ttf�sJ|�j�d��d|�_d�S�|sd|�j�d��d|�_d�S�t|�|�_d�S�)Nr��zNo token list is definedTztokens must be a list or tupleztokens is empty) r����r����r8��r���rK���rv���r�����sortedr��)r ���r��r ���r ���r���r������s����zParserReflect.get_tokensc�����������������C���sV���d|�j�v�r |�j�d��d|�_d�S�t��}|�j�D�]$}||v�rF|�j�d|��|�|��q,d�S�)Nr���z.Illegal token name 'error'. Is a reserved wordTzToken %r multiply defined)r��r8��r���r����r���r����)r ���r����rM���r ���r ���r���r�����s���� zParserReflect.validate_tokensc�����������������C���s���|�j��d�|�_d�S�)Nr����)r����r����r����r;���r ���r ���r���r�����s����zParserReflect.get_precedencec�����������������C���s��g�}|�j��rt|�j�ttf�s2|�j�d��d|�_d�S�t|�j��D�]�\}}t|ttf�sj|�j�d��d|�_�d�S�t|�dk�r�|�j�d|��d|�_�d�S�|d�}t|t�s�|�j�d��d|�_�d�S�|dd���D�]<}t|t�s�|�j�d ��d|�_��d�S�|� |||d�f��q�q<||�_ d�S�) Nz"precedence must be a list or tupleTzBad precedence tablerv��z?Malformed precedence entry %s. Must be (assoc, term, ..., term)r���z)precedence associativity must be a stringrs���z precedence items must be strings)r����rK���rv���r����r8��r���r����r"���r���rp����preclist)r ���r���r����r����r����r����r ���r ���r���r�����s6���� z!ParserReflect.validate_precedencec�����������������C���s����g�}|�j����D�]\\}}|�d�r|dkr*qt|tjtjf�rt|d|jj �}t �|�}|�||||j f��q|jdd��d��||�_d�S�)N�p_r���r���c�����������������S���s ���|�d�t�|�d��|�d�|�d�fS�)Nr���rs���rv��r���r=���)Z p_functionr ���r ���r���rV��F��s ���� �z.ParserReflect.get_pfunctions.<locals>.<lambda>)�key)r����ru���� startswithrK���r��r���r���rW���r���r���r���r���rp����__doc__�sortr���)r ���Zp_functionsr����itemr����r��r ���r ���r���r���9��s���� zParserReflect.get_pfunctionsc�����������������C���sN��g�}t�|�j�dkr(|�j�d��d|�_d�S�|�jD��]\}}}}t�|�}|�j|�}t|tj �rbd}nd}|j j|kr�|�j�d|||j��d|�_q.|j j|k�r�|�j�d|||j��d|�_q.|j s�|�j�d|||j��q.z(t|||�} | D�]} |�|| f��q�W�n<�t�y6�}�z"|�j�t|���d|�_W�Y�d�}~n d�}~0�0�|�j�|��q.|�j���D�]�\}} |�d ��r|t| tjtj f��r|�qP|�d ��r��qP|�d ��r�|dk�r�|�j�d|��t| tj��r�| j jdk�s�t| tj ��rP| jj jdk�rP| j �rPz8| j �d �}|d�dk�r(|�j�d| j j| j j|��W�n�t�y>���Y�n0��qP||�_d�S�)Nr���z+no rules of the form p_rulename are definedTrv��rs���z%%s:%d: Rule %r has too many argumentsz#%s:%d: Rule %r requires an argumentzA%s:%d: No documentation string specified in function %r (ignored)r���Zt_r���z%r not defined as a functionr����rw��z9%s:%d: Possible grammar rule %r defined without p_ prefix)r"���r���r8��r���r���r���r����rK���r��r���r���r���r���r���r���r|��rp���rb���r>���r��r����ru���r���r����__func__re��r���r���r����r7��)r ���r7��r����r��r���r{��r����r����ZreqargsZparsed_grE��ri��rM���rO���r ���r ���r���r���N��sf���� � ��� z!ParserReflect.validate_pfunctions)N)r���r���r���r���r���r���r$��r���r���r���r���r���r���r���r���r���r���r���r ���r ���r ���r���r}��z��s��� r}��c �����������<���������s� ��|d�u�rt�}|rd}|d�u�r&ttj�}��r���fdd�t���D��} t| �}d|vrdtj|d��j|d<�d|vr�d|v�r�ttj|d��d�r�tj|d��j |d<�nt d�}| d�u��rt|tj �r�|j}nLd|vr�|d�}n:|�d�}d�|d�d ���}td |���ttj|�dd�}tj�|�} |�d�}|�rNt|t��rNd|v�rN|d�|�}|d�u�r`||d<�t||d �}|����|j�r�td��|���}z�t��}|�r�|�|�}n |�|�}|�s�||k�rz&|�|j ��t!||j"�}|j#a#|W�W�S��t$�y�}�z|�%d|��W�Y�d�}~n d�}~0�0�W�nF�t&�yP�}�z|�%t|���W�Y�d�}~nd�}~0��t'�yb���Y�n0�| d�u��r�|�r�ztt(tj�| |�d��} W�n>�t)�y��}�z$|�%d||f���t*��} W�Y�d�}~n d�}~0�0�nt*��} | �+dt,��d}|�-���r�td��|j"�s|�%d��t.|j/�}|j0D�]R\}}}z|�1|||��W�n2�t2�yj�}�z|�%d|��W�Y�d�}~n d�}~0�0��q|j3D�]d\}}|\} }!}"}#z|�4|"|#|| |!��W�n6�t2�y��}�z|�d|��d}W�Y�d�}~n d�}~0�0��qvz&|d�u��r�|�5|j6��n |�5|��W�n8�t2�y:�}�z|�t|���d}W�Y�d�}~n d�}~0�0�|�rJtd��|�7��}$|$D�]"\}%}&|�d|&j8|&j9|%��d}�qV|�:��}'|'�r�| �+d��| �+d��| �+d��|'D�]}|�%d|��| �+d|���q�|�r| �+d��| �+d��| �+d��t;|j<�D�]\}(})| �+d|(|)���q�|�=��}*|*D�]}&|�%d|&j8|&j9|&j>���qt?|'�dk�rT|�%d��t?|'�dk�rr|�%d t?|'���t?|*�dk�r�|�%d!��t?|*�dk�r�|�%d"t?|*���|�rx| �+d��| �+d#��| �+d��t@|jA�}+|+�B���|+D�]*}| �+d$|d%�d&d��|jA|�D������q�| �+d��| �+d'��| �+d��t@|jC�},|,�B���|,D�]*}-| �+d$|-d%�d(d��|jC|-�D������qB| �+d��|�r�|�D��}.|.D�]}/|�%d)|/���q�|�E��}0|0D�]}1|�d*|1��d}�q�|�F��}2|2D�]\}}|�d+||��d}�q�|�r�td��|�r|�Gd,|���tH||�| �}|�r�t?|jI�}3|3dk�r>|�%d-��n|3dk�rT|�%d.|3��t?|jJ�}4|4dk�rt|�%d/��n|4dk�r�|�%d0|4��|�r�|jI�s�|jJ�r�| �%d��| �%d1��| �%d��|jID�]\}5}6}7| �%d2|6|5|7���q�tK��}8|jJD�]x\}5}9}:|5tL|9�tL|:�f|8v��r�q�| �%d3|5|9��| �%d4|:|5��|�%d3|5|9��|�%d4|:|5��|8�M|5tL|9�tL|:�f���q�g�};|jJD�]@\}5}9}:|:jN�sr|:|;v�rr| �%d5|:��|�%d5|:��|;�O|:���qr|� rz&|�P|| |��|tjv��r�tj|=�W�n8�t)� y�}�z|�%d6||f���W�Y�d�}~n d�}~0�0�|� rjz|�Q||��W�n8�t)� yh�}�z|�%d6||f���W�Y�d�}~n d�}~0�0�|�|j ��t!||j"�}|j#a#|S�)7Nr���c��������������������s���g�|�]}|t���|�f�qS�r ���)rW���)rH���r���r��r ���r���rI������rJ���zyacc.<locals>.<listcomp>�__file__r����__package__rv��r����r����r��r����r����)r8��zUnable to build parserz.There was a problem loading the table file: %rrc��zCouldn't open %r. %sz5Created by PLY version %s (http://www.dabeaz.com/ply)Fz no p_error() function is definedz%sTz;%s:%d: Symbol %r used, but not defined as a token or a rulezUnused terminals:zToken %r defined, but not usedz %sr����zRule %-5d %sz$%s:%d: Rule %r defined, but not usedrs���zThere is 1 unused tokenzThere are %d unused tokenszThere is 1 unused rulezThere are %d unused rulesz'Terminals, with rules where they appearz %-20s : %sr����c�����������������S���s���g�|�]}t�|��qS�r ���r=���rG���r ���r ���r���rI���M ��rJ���z*Nonterminals, with rules where they appearc�����������������S���s���g�|�]}t�|��qS�r ���r=���rG���r ���r ���r���rI���U ��rJ���zSymbol %r is unreachablez)Infinite recursion detected for symbol %rz0Precedence rule %r defined for unknown symbol %rzGenerating %s tablesz1 shift/reduce conflictz%d shift/reduce conflictsz1 reduce/reduce conflictz%d reduce/reduce conflictsz Conflicts:z7shift/reduce conflict for %s in state %d resolved as %sz;reduce/reduce conflict in state %d resolved using rule (%s)zrejected rule (%s) in state %dzRule (%s) is never reducedzCouldn't create %r. %s)R� tab_moduler���r}���r~����dir�dictr��r���r����r���rt��rK���r��r��re��r����r��rW���r��r���dirnamer����r>���r}��r���r���r���r$��r��r%��r��r&��r����rc���r~��r����ry��r���r ��r��r ��rd��r���r����__version__r���r����r��r���r����r����r7��r����r����r����r����r����r����r����r����r����r��r���r"���rv���r����r���r����r����r����r��r���r6��r=��r>��r����r%���r����r����rp���rj��rn��)<r@��r���r��rg��r����Zcheck_recursion�optimizeZwrite_tablesZ debugfilerh��ZdebuglogZerrorlogZ picklefileZ_itemsr����Zsrcfiler���Zpkgname�pkgZpinfor$��ZlrZread_signaturer7���ri���errorsr7��r����r����r�����funcnameZgramr����r����r����r����r����rq���r����r����rM���r����r��rO��ZnontermsZnontermZunreachable�ur�����infZunused_precZnum_srZnum_rrrx���r����Z resolutionZalready_reportedZruleZrejectedZwarned_neverr ���r���r����yacc���s���� &" & ( ( ((r���);r���r��r}���Zos.pathr��r���r,���r���r��Z yaccdebugZ debug_filer���Z default_lrr����r{���r#���rm���version_infoZ basestringr���r>����maxsizer/���objectr���r���ry��r���r)���r+���r/���r3���r1���r.���r0���r2���r4���r8���r9���r@���rc���r���r����r����r����r����r����r����r����r ��r��r-��r'��r5��r6��rt��r|��r}��r���r ���r ���r ���r����<module>>���s���� 7�������m H.���rT ������)�� �