
    Mhk                       d dl Z d dlZd dlZd dlZd dlZd dlZd dlZdZdZ	dZ
dZdZdZdZdZd	Zd Zej        d          dk     reZneZej        Z G d
 de          Z G d de          Z G d de          Zd Zd Zdada da!dZ"d Z#d Z$d Z%d Z& G d d          Z' G d d          Z( G d d          Z) e j*        d          Z+ G d de          Z, G d  d!e          Z- G d" d#e          Z.d$ Z/ G d% d&e          Z0 G d' d(e          Z1 G d) d*e          Z2 G d+ d,e          Z3d- Z4d. Z5 G d/ d0e          Z6 G d1 d2e3          Z7d3 Z8d4 Z9 G d5 d6e          Z:de
deddddeddddfd7Z;dS )8    Nz3.10Tz
parser.outparsetabLALR   F(   c                   .    e Zd Zd Zd ZeZd Zd ZeZdS )	PlyLoggerc                     || _         d S N)f)selfr   s     R/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pycparser/ply/yacc.py__init__zPlyLogger.__init__n   s        c                 F    | j                             ||z  dz              d S )N
r   writer   msgargskwargss       r   debugzPlyLogger.debugq   s%    cDjD()))))r   c                 L    | j                             d||z  z   dz              d S )Nz	WARNING: r   r   r   s       r   warningzPlyLogger.warningv   s*    [C$J/$677777r   c                 L    | j                             d||z  z   dz              d S )NzERROR: r   r   r   s       r   errorzPlyLogger.errory   s*    Y#*-455555r   N)	__name__
__module____qualname__r   r   infor   r   critical r   r   r   r   m   sX          * * * D8 8 86 6 6 HHHr   r   c                       e Zd Zd Zd ZdS )
NullLoggerc                     | S r
   r"   )r   names     r   __getattribute__zNullLogger.__getattribute__       r   c                     | S r
   r"   )r   r   r   s      r   __call__zNullLogger.__call__   r(   r   N)r   r   r   r'   r*   r"   r   r   r$   r$      s2              r   r$   c                       e Zd ZdS )	YaccErrorNr   r   r   r"   r   r   r,   r,              Dr   r,   c                     t          |           }d|v rt          |          }t          |          t          k    r|d t                   dz   }dt          |           j        t          |           |fz  }|S )Nr   z ...z<%s @ 0x%x> (%s))reprlenresultlimittyper   id)rrepr_strresults      r   format_resultr8      sl    AwwHx>>
8}}{""L[L)F2477#3RUUH"EEFMr   c                     t          |           }d|v rt          |          }t          |          dk     r|S dt          |           j        t	          |           fz  S )Nr      z<%s @ 0x%x>)r0   r1   r3   r   r4   )r5   r6   s     r   format_stack_entryr;      sX    AwwHx>>
8}}rQ 0"Q%%888r   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                  P    t          j        t                     t                      S r
   )warningswarn_warnmsg_errokr"   r   r   errokrA          M(88Or   c                  P    t          j        t                     t                      S r
   )r=   r>   r?   _restartr"   r   r   restartrE      s    M(::r   c                  P    t          j        t                     t                      S r
   )r=   r>   r?   _tokenr"   r   r   tokenrH      rB   r   c                 p    |j         a|j        a|j        a | |          }	 bbbn# t          $ r Y nw xY w|S r
   )rA   r@   rH   rG   rE   rD   	NameError)	errorfuncrH   parserr5   s       r   call_errorfuncrM      sY    \F\F~H	%AFHH   Hs   & 
33c                       e Zd Zd Zd ZdS )
YaccSymbolc                     | j         S r
   r3   r   s    r   __str__zYaccSymbol.__str__   s
    yr   c                      t          |           S r
   strrR   s    r   __repr__zYaccSymbol.__repr__   s    4yyr   N)r   r   r   rS   rW   r"   r   r   rO   rO      s2              r   rO   c                   R    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd ZdS )YaccProductionNc                 >    || _         || _        d | _        d | _        d S r
   )slicestacklexerrL   )r   sr\   s      r   r   zYaccProduction.__init__   s"    


r   c                     t          |t                    rd | j        |         D             S |dk    r| j        |         j        S | j        |         j        S )Nc                     g | ]	}|j         
S r"   value.0r^   s     r   
<listcomp>z.YaccProduction.__getitem__.<locals>.<listcomp>   s    333AG333r   r   )
isinstancer[   rb   r\   r   ns     r   __getitem__zYaccProduction.__getitem__   sU    a 	'33TZ]3333!VV:a=&&:a=&&r   c                 *    || j         |         _        d S r
   )r[   rb   )r   rh   vs      r   __setitem__zYaccProduction.__setitem__   s    
1r   c                 4    d | j         ||         D             S )Nc                     g | ]	}|j         
S r"   ra   rc   s     r   re   z/YaccProduction.__getslice__.<locals>.<listcomp>   s    111A111r   )r[   )r   ijs      r   __getslice__zYaccProduction.__getslice__   s     11AaC1111r   c                 *    t          | j                  S r
   )r1   r[   rR   s    r   __len__zYaccProduction.__len__   s    4:r   c                 :    t          | j        |         dd          S )Nlinenor   getattrr[   rg   s     r   ru   zYaccProduction.lineno      tz!}h222r   c                 *    || j         |         _        d S r
   )r[   ru   )r   rh   ru   s      r   
set_linenozYaccProduction.set_lineno  s    %
1r   c                 z    t          | j        |         dd          }t          | j        |         d|          }||fS )Nru   r   	endlinenorv   )r   rh   	startlineendlines       r   linespanzYaccProduction.linespan  s;    DJqM8Q77	$*Q-i@@'!!r   c                 :    t          | j        |         dd          S )Nlexposr   rv   rg   s     r   r   zYaccProduction.lexpos  rx   r   c                 z    t          | j        |         dd          }t          | j        |         d|          }||fS )Nr   r   	endlexposrv   )r   rh   startposendposs       r   lexspanzYaccProduction.lexspan  s;    4:a=(A66AX>>r   c                     t           r
   )SyntaxErrorrR   s    r   r   zYaccProduction.error  s    r   r
   )r   r   r   r   ri   rl   rq   rs   ru   rz   r   r   r   r   r"   r   r   rY   rY      s           ' ' '     2 2 2  3 3 3& & &" " "
3 3 3     
    r   rY   c                   L    e Zd Zd Zd Zd Zd Zd ZddZdd	Z	dd
Z
ddZdS )LRParserc                     |j         | _        |j        | _        |j        | _        || _        |                                  d| _        d S NT)	lr_productionsproductions	lr_actionactionlr_gotogotorK   set_defaulted_stateserrorok)r   lrtaberrorfs      r   r   zLRParser.__init__  sC     /oM	!!###r   c                     d| _         d S r   )r   rR   s    r   rA   zLRParser.errok&  s    r   c                     | j         d d = | j        d d = t                      }d|_        | j                            |           | j                             d           d S )N$endr   )
statestacksymstackrO   r3   append)r   syms     r   rE   zLRParser.restart)  s`    OAAAM!!!llS!!!q!!!!!r   c                     i | _         | j                                        D ]U\  }}t          |                                          }t          |          dk    r|d         dk     r|d         | j         |<   Vd S N   r   )defaulted_statesr   itemslistvaluesr1   )r   stateactionsruless       r   r   zLRParser.set_defaulted_states9  sy     ""k//11 	8 	8NE7))**E5zzQ58a<</4Qx%e,	8 	8r   c                     i | _         d S r
   )r   rR   s    r   disable_defaulted_statesz!LRParser.disable_defaulted_states@  s     "r   NFc                 
   |st           rGt          |t                    rt          t          j                  }|                     |||||          S |r|                     |||||          S |                     |||||          S r
   )		yaccdevelrf   intr   sysstderr
parsedebugparseoptparseopt_notrack)r   inputr]   r   tracking	tokenfuncs         r   parsezLRParser.parseC  s     	SI 	S%%% .!#*--??5%)LLL 	S==uh	JJJ((uh	RRRr   c                    d }g }| j         }| j        }	| j        }
| j        }t	          d           }d}|                    d           |sddlm} |j        }||_        | |_	        ||
                    |           ||j        }n|}|| _        g }|| _        g }|| _        ||_        d }|                    d           t!                      }d|_        |                    |           d}	 |                    d           |                    d|           ||vr]|s8|s |            }n|                                }|st!                      }d|_        |j        }||                             |          }n ||         }|                    d	||            |                    d
d                    d |D             dd                    dt-          |                                                     ||dk    rM|                    |           |}|                    d|           |                    |           d }|r|dz  }b|dk     rY|
|          }|j        }|j        }t!                      }||_        d |_        |r_|                    d|j        dd                    d || d          D                       z   dz   |	|d|z
                    |                    n/|                    d|j        g |	|d                  |                    |r|| dz
  d          }||d<   |r^|d         }|j        |_        |j        |_        |d         }t;          |d|j                  |_        t;          |d|j                  |_        ||_         	 || d = || _!        |"                    |           || d = |                    dtG          |d                              |                    |           |	|d                  |         }|                    |           n|# tH          $ ro |                    |           |%                    |dd                    |                                 |d         }d|_        d|_        |}tL          }d| _'        Y nw xY w|r|j        |_        |j        |_        |g}||_         	 || _!        |"                    |           |                    dtG          |d                              |                    |           |	|d                  |         }|                    |           n_# tH          $ rR |                    |           |                                 |d         }d|_        d|_        |}tL          }d| _'        Y nw xY w|dk    rS|d         }t;          |dd           }|                    dtG          |                     |                    d           |S ||(                    dd                    d |D             dd                    dt-          |                                                     |dk    s| j'        rtL          }d| _'        |}|j        dk    rd }| j)        rD|rtU          |d          s||_        || _!        tW          | j)        ||           }| j'        r|}d }n|rntU          |d           r|j        }nd}|r*tX          j-        .                    d!||j        fz             nPtX          j-        .                    d"|j        z             n(tX          j-        .                    d#           d S tL          }t3          |          dk    r|j        dk    rd }d }d}|d d = |j        dk    rd S |j        dk    r|d         }|j        dk    r<|r6t;          |d |j                  |_        t;          |d$|j                  |_        d }t!                      }d|_        tU          |d           r|j        x|_        |_        tU          |d$          r|j        x|_        |_        ||_        |                    |           |}nJ|                                }|r|j        |_        |j        |_        |                                 |d         }t_          d%          )&Nr   zPLY: PARSE DEBUG STARTr   lexr   T zState  : %sz#Defaulted state %s: Reduce using %dzStack  : %s c                     g | ]	}|j         
S r"   rQ   rd   xxs     r   re   z'LRParser.parsedebug.<locals>.<listcomp>  s    /K/K/KB/K/K/Kr   z . z Action : Shift and goto state %sz3Action : Reduce rule [%s] with %s and goto state %d[,c                 6    g | ]}t          |j                  S r"   )r;   rb   )rd   _vs     r   re   z'LRParser.parsedebug.<locals>.<listcomp>  s$    0i0i0iRT1CBH1M1M0i0i0ir   ]r|   r   zResult : %sr   Frb   zDone   : Returning %szPLY: PARSE DEBUG ENDzError  : %sc                     g | ]	}|j         
S r"   rQ   r   s     r   re   z'LRParser.parsedebug.<locals>.<listcomp>B  s    3O3O3OBG3O3O3Or   r]   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!!!
)0r   r   r   r   rY   r    r   r   r]   rL   r   rH   r   r   r\   r   rO   r3   r   popgetjoinrV   lstripr&   r1   rb   ru   r   rw   r|   r   r[   r   callabler8   r   extenderror_countr   r   rK   hasattrrM   r   r   r   RuntimeError r   r   r]   r   r   r   	lookaheadlookaheadstackr   r   prodr   pslice
errorcountr   	get_tokenr   r   errtokenr   r   ltypetppnameplentargt1rh   r7   tokru   s                                    r   r   zLRParser.parsedebug\  s	   	+)"0 &&
 	

+,,,  	IE  KKII!I 
 
$  	!llY	C KKOOOKKu--- ,,,  0) 9$-IKK		$2$6$6$8$8	$ 0$.LL	)/	 "EN&&u--$U+A51"MMM KK&)hh/K/K(/K/K/KABB/O&P&P&P&PRUV_R`R`R`aiikkm m m }q55%%a(((E KK BAFFF OOI... $I " ("a
q55aRAFEED %,,C$CH $CI  @

#XZ[Z_#&sxx0i0iX`bfafagagXh0i0i0i'j'j#jkn#n#'
2d7(;#<U#CE E E E 

#XZ[Z_ac#'
2#7#>@ @ @
  V!'a1"%Q $ P!%aB)+CJ)+CJ!%bB,3BRY,O,OCM,3BRY,O,OCM (,1 ($ 0).DJJJv... *D566 2!JJ}mF1I6N6NOOO$OOC000$(B$8$?E&--e4444* 
1 
1 
1*11)<<<$OOD2J777&NN,,,$.rNE'.CH(/CI(+I)4J+0DLLL
1 ! $ 6).CJ).CJ !$u (,1).DJJJv...!JJ}mF1I6N6NOOO$OOC000$(B$8$?E&--e4444* 	1 	1 	1*11)<<<&NN,,,$.rNE'.CH(/CI(+I)4J+0DLLL	1 ! 66 A$Q66FJJ6f8M8MNNNJJ5666!My M*-((3O3Oh3O3O3OPQPRPR3S*T*T*T*TVYZcVdVdVdemmooq q q ??dl?!,J#(DL(H}..#'~ ## 3GHg,F,F 3-2HN%*
,T^XtLL< % ),I'+H$% $ #&x:: +)2)9)*% a #
 0 01\`fhphu_v1v w w w w #
 0 01ORZR_1_ ` ` ` `J,,-PQQQ"F "-J z??a''INf,D,D $I#HE&qqq) >V++F>W,,"2,Cx7** $ U,3Ix,T,TCM,3Ix,T,TCM$(	  #A$AFy(33 B1:1AA1;y(33 B1:1AA1;'AG")))444 !II",,..C 6+.:	(+.:	(NN$$$&rNE ABBBs(   BP$ $A6RRBU AV'&V'c                 (   d }g }| j         }| j        }	| j        }
| j        }t	          d           }d}|sddlm} |j        }||_        | |_        ||	                    |           ||j
        }n|}|| _
        g }|| _        g }|| _        ||_        d }|                    d           t                      }d|_        |                    |           d}	 ||vr]|s8|s |            }n|                                }|st                      }d|_        |j        }||                             |          }n||         }||dk    r6|                    |           |}|                    |           d }|r|dz  }|dk     rw|
|          }|j        }|j        }t                      }||_        d |_        |r`|| dz
  d          }||d<   |r^|d         }|j        |_        |j        |_        |d         }t1          |d|j                  |_        t1          |d|j                  |_        ||_        	 || d = || _        |                    |           || d = |                    |           |	|d                  |         }|                    |           n|# t<          $ ro |                    |           |                    |dd                    |                                 |d         }d	|_        d	|_        |}t@          }d
| _!        Y nw xY wF|r|j        |_        |j        |_        |g}||_        	 || _        |                    |           |                    |           |	|d                  |         }|                    |           n_# t<          $ rR |                    |           |                                 |d         }d	|_        d	|_        |}t@          }d
| _!        Y nw xY w'|dk    r|d         }t1          |dd           }|S |e|dk    s| j!        rt@          }d
| _!        |}|j        dk    rd }| j"        rD|rtG          |d          s||_        || _        tI          | j"        ||           }| j!        r|}d }n|rntG          |d          r|j        }nd}|r*tJ          j&        '                    d||j        fz             nPtJ          j&        '                    d|j        z             n(tJ          j&        '                    d           d S t@          }t)          |          dk    r|j        dk    rd }d }d}|d d = |j        dk    rd S |j        d	k    r|d         }|j        d	k    r<|r6t1          |d|j                  |_        t1          |d|j                  |_        d }t                      }d	|_        tG          |d          r|j        x|_        |_        tG          |d          r|j        x|_        |_        ||_        |                    |           |}nJ|                                }|r|j        |_        |j        |_        |                                 |d         }tQ          d          )Nr   r   r   r   Tr   r|   r   r   Frb   r]   ru   r   r   r   r   r   ))r   r   r   r   rY   r   r   r]   rL   r   rH   r   r   r\   r   rO   r3   r   r   r&   r1   rb   ru   r   rw   r|   r   r[   r   r   r   r   r   r   rK   r   rM   r   r   r   r   r   s                                    r   r   zLRParser.parseopt  s   	+)"0 &&
  	IE  KKII!I 
 
$  	!lls	C ,,,  0) 9$-IKK		$2$6$6$8$8	$ 0$.LL	)/	 "EN&&u--$U+ }q55%%a(((E OOI... $I " ("a
q55aRAFEED %,,C$CH $CI  P!'a1"%Q $ P!%aB)+CJ)+CJ!%bB,3BRY,O,OCM,3BRY,O,OCM (,1 ($ 0).DJJJv... *D566 2$OOC000$(B$8$?E&--e4444* 
1 
1 
1*11)<<<$OOD2J777&NN,,,$.rNE'.CH(/CI(+I)4J+0DLLL
1 ! $ 6).CJ).CJ !$u (,1).DJJJv...$OOC000$(B$8$?E&--e4444* 	1 	1 	1*11)<<<&NN,,,$.rNE'.CH(/CI(+I)4J+0DLLL	1 ! 66 A$Q66F!My ??dl?!,J#(DL(H}..#'~ ## 3GHg,F,F 3-2HN%*
,T^XtLL< % ),I'+H$% $ #&x:: +)2)9)*% a #
 0 01\`fhphu_v1v w w w w #
 0 01ORZR_1_ ` ` ` `J,,-PQQQ"F "-J z??a''INf,D,D $I#HE&qqq) >V++F>W,,"2,Cx7** $ U,3Ix,T,TCM,3Ix,T,TCM$(	  #A$AFy(33 B1:1AA1;y(33 B1:1AA1;'AG")))444 !II",,..C 6+.:	(+.:	(NN$$$&rNE ABBBs(   6A&J A6LL AN AO76O7c                    d }g }| j         }| j        }	| j        }
| j        }t	          d           }d}|sddlm} |j        }||_        | |_        ||	                    |           ||j
        }n|}|| _
        g }|| _        g }|| _        ||_        d }|                    d           t                      }d|_        |                    |           d}	 ||vr]|s8|s |            }n|                                }|st                      }d|_        |j        }||                             |          }n||         }|a|dk    r6|                    |           |}|                    |           d }|r|dz  }|dk     r|
|          }|j        }|j        }t                      }||_        d |_        |r || dz
  d          }||d<   ||_        	 || d = || _        |                    |           || d = |                    |           |	|d                  |         }|                    |           n|# t2          $ ro |                    |           |                    |dd                    |                                 |d         }d|_        d|_        |}t6          }d| _        Y nw xY w|g}||_        	 || _        |                    |           |                    |           |	|d                  |         }|                    |           n_# t2          $ rR |                    |           |                                 |d         }d|_        d|_        |}t6          }d| _        Y nw xY w|dk    r|d         }t;          |d	d           }|S ||dk    s| j        rt6          }d| _        |}|j        dk    rd }| j        rD|rt?          |d
          s||_        || _        tA          | j        ||           }| j        r|}d }En|rnt?          |d          r|j!        }nd}|r*tD          j#        $                    d||j        fz             nPtD          j#        $                    d|j        z             n(tD          j#        $                    d           d S t6          }t)          |          dk    r|j        dk    rd }d }d}|d d = 	|j        dk    rd S |j        dk    r|d         }|j        dk    rd }8t                      }d|_        t?          |d          r|j!        x|_!        |_%        t?          |d          r|j&        x|_&        |_'        ||_        |                    |           |}n0|                                }|                                 |d         }tQ          d          )Nr   r   r   r   Tr   r   Frb   r]   ru   r   r   r   r   r   ))r   r   r   r   rY   r   r   r]   rL   r   rH   r   r   r\   r   rO   r3   r   r   r&   r1   rb   r[   r   r   r   r   r   r   rw   rK   r   rM   ru   r   r   r   r|   r   r   r   )r   r   r]   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rh   r7   r   ru   s                                  r   r   zLRParser.parseopt_notrack  s   	+)"0 &&
  	IE  KKII!I 
 
$  	!ll[	C ,,,  0) 9$-IKK		$2$6$6$8$8	$ 0$.LL	)/	 "EN&&u--$U+ }q55%%a(((E OOI... $I " ("a
q55aRAFEED %,,C$CH $CI  B!'a1"%Q (,1 ($ 0).DJJJv... *D566 2$OOC000$(B$8$?E&--e4444* 
1 
1 
1*11)<<<$OOD2J777&NN,,,$.rNE'.CH(/CI(+I)4J+0DLLL
1 ! !$u (,1).DJJJv...$OOC000$(B$8$?E&--e4444* 	1 	1 	1*11)<<<&NN,,,$.rNE'.CH(/CI(+I)4J+0DLLL	1 ! 66 A$Q66F!My ??dl?!,J#(DL(H}..#'~ ## 3GHg,F,F 3-2HN%*
,T^XtLL< % ),I'+H$% $ #&x:: +)2)9)*% a #
 0 01\`fhphu_v1v w w w w #
 0 01ORZR_1_ ` ` ` `J,,-PQQQ"F "-J z??a''INf,D,D $I#HE&qqq) >V++F>W,,"2,Cx7** %)	  #A$AFy(33 B1:1AA1;y(33 B1:1AA1;'AG")))444 !II",,..CNN$$$&rNE ABBBs(   A&H= =A6J65J6AL! !AM=<M=)NNFFN)r   r   r   r   rA   rE   r   r   r   r   r   r   r"   r   r   r   r     s            " " " 8 8 8# # #S S S S2OC OC OC OCv
fC fC fC fCd	NC NC NC NC NC NCr   r   z^[a-zA-Z0-9_-]+$c                   D    e Zd ZdZddZd Zd Zd Zd	 Zd
 Z	d Z
d ZdS )
Productionr   rightr   Nr   c                    || _         t          |          | _        || _        || _        d | _        || _        || _        || _        t          | j                  | _	        g | _
        | j        D ]%}|| j
        vr| j
                            |           &g | _        d | _        | j        r+| j         dd                    | j                  | _        d S d| j         z  | _        d S N -> r   z%s -> <empty>)r&   tupler   numberfuncr   filelineprecr1   usymsr   lr_itemslr_nextr   rV   )	r   r   r&   r   
precedencer   r   r   r^   s	            r   r   zProduction.__init__  s    	d				"	 	NN 
 	% 	%A
""
!!!$$$  9 	3%)YYY0C0C0CDDHHH&2DHHHr   c                     | j         S r
   rU   rR   s    r   rS   zProduction.__str__=  	    xr   c                 ,    dt          |           z   dz   S )NzProduction()rU   rR   s    r   rW   zProduction.__repr__@  s    s4yy(3..r   c                 *    t          | j                  S r
   )r1   r   rR   s    r   rs   zProduction.__len__C  s    49~~r   c                     dS Nr   r"   rR   s    r   __nonzero__zProduction.__nonzero__F  s    qr   c                     | j         |         S r
   )r   r   indexs     r   ri   zProduction.__getitem__I  s    yr   c                 6   |t          | j                  k    rd S t          | |          }	 t          |j        |dz                     |_        n# t
          t          f$ r
 g |_        Y nw xY w	 |j        |dz
           |_        n# t
          $ r
 d |_        Y nw xY w|S r   )r1   r   LRItem	Prodnameslr_after
IndexErrorKeyError	lr_before)r   rh   r   s      r   lr_itemzProduction.lr_itemM  s    s49~~44OO	"16!A#;/AJJH% 	 	 	AJJJ		&1+AKK 	 	 	AKKK	s#    A A('A(,B BBc                 <    | j         r|| j                  | _        d S d S r
   r   r   r   pdicts     r   bindzProduction.bind]  (    9 	-!$),DMMM	- 	-r   )r   Nr   r   )r   r   r   reducedr   rS   rW   rs   r   ri   r  r  r"   r   r   r   r     s        G3 3 3 3<  / / /            - - - - -r   r   c                   &    e Zd Zd Zd Zd Zd ZdS )MiniProductionc                 h    || _         || _        || _        d | _        || _        || _        || _        d S r
   )r&   r1   r   r   r   r   rV   )r   rV   r&   r1   r   r   r   s          r   r   zMiniProduction.__init__f  s7    				r   c                     | j         S r
   rU   rR   s    r   rS   zMiniProduction.__str__o  r   r   c                     d| j         z  S )NzMiniProduction(%s)rU   rR   s    r   rW   zMiniProduction.__repr__r  s    #dh..r   c                 <    | j         r|| j                  | _        d S d S r
   r	  r
  s     r   r  zMiniProduction.bindv  r  r   N)r   r   r   r   rS   rW   r  r"   r   r   r  r  e  sP            / / /- - - - -r   r  c                        e Zd Zd Zd Zd ZdS )r  c                 6   |j         | _         t          |j                  | _        |j        | _        || _        i | _        | j                            |d           t          | j                  | _        t          | j                  | _        |j	        | _	        d S )N.)
r&   r   r   r   lr_index
lookaheadsinsertr   r1   r   )r   r   rh   s      r   r   zLRItem.__init__  sv    &	qv,,	(	C   	**	di..'


r   c                 r    | j         r%| j        dd                    | j                   }n
d| j        z  }|S r   )r   r&   r   )r   r^   s     r   rS   zLRItem.__str__  s@    9 	,"iii$))<)<)<=AA$)+Ar   c                 ,    dt          |           z   dz   S )NzLRItem(r   rU   rR   s    r   rW   zLRItem.__repr__  s    3t99$s**r   N)r   r   r   r   rS   rW   r"   r   r   r  r    sA        	" 	" 	"  + + + + +r   r  c                 p    t          |           dz
  }|dk    r| |         |v r| |         S |dz  }|dk    d S r   )r1   )symbols	terminalsro   s      r   rightmost_terminalr     sO    GqA
q&&1:""1:	Q q&& 4r   c                       e Zd ZdS )GrammarErrorNr-   r"   r   r   r"  r"    r.   r   r"  c                   t    e Zd Zd Zd Zd Zd ZddZdd	Zd
 Z	d Z
d Zd Zd Zd Zd Zd ZddZd ZdS )Grammarc                     d g| _         i | _        i | _        i | _        |D ]}g | j        |<   g | j        d<   i | _        i | _        i | _        i | _        t                      | _	        d | _
        d S Nr   )Productionsr  Prodmap	TerminalsNonterminalsFirstFollow
PrecedencesetUsedPrecedenceStart)r   r  terms      r   r   zGrammar.__init__  s    !F     	& 	&D#%DN4  "$w 
 "ee 


r   c                 *    t          | j                  S r
   )r1   r'  rR   s    r   rs   zGrammar.__len__  s    4#$$$r   c                     | j         |         S r
   )r'  r   s     r   ri   zGrammar.__getitem__  s    &&r   c                     | j         d gk    s
J d            || j        v rt          d|z            |dvrt          d          ||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   r1  assoclevels       r   set_precedencezGrammar.set_precedence  st    D6)))+_)))4?""MPTTUUU555[\\\!&r   Nr   r   c           	      d   || j         v rt          d|||fz            |dk    rt          d|||fz            t                              |          st          d|||fz            t	          |          D ]\  }}|d         dv rb	 t          |          }t          |          dk    rt          d||||fz            || j         vr
g | j         |<   |||<   a# t          $ r Y nw xY wt                              |          s|d	k    rt          d
||||fz            d	|v r|d         d	k    rt          d||fz            |d         d	k    rt          d||fz            |d         }	| j        	                    |	          }
|
st          d|||	fz            | j
                            |	           |dd = n0t          || j                   }	| j        	                    |	d          }
|d|}|| j        v r4| j        |         }t          d|||fz  d|j        |j        fz  z             t          | j                  }|| j        vr
g | j        |<   |D ]_}|| j         v r!| j         |                             |           ,|| j        vr
g | j        |<   | j        |                             |           `t'          ||||
|||          }| j                            |           || j        |<   	 | j        |                             |           d S # t*          $ r |g| j        |<   Y d S w xY w)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'"r   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 %%preczH%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. zPrevious definition at %s:%d)r)  r"  _is_identifiermatch	enumerateevalr1   r   r-  r   r/  addr   r(  r   r   r'  r*  r   r   r  r  )r   prodnamesymsr   r   r   rh   r^   cprecnameprodprecmapmpnumberr   r   s                   r   add_productionzGrammar.add_production  s   t~%%X\`bfhp[qqrrrwVZ^`dfnYooppp##H-- 	W<dH?UUVVV dOO 	d 	dDAqtu}}
QAA

*+n,0$8+D,E F F F..,.q)DG"   D!''** dqG||"#F$PTVWYaIb#bccc d??Bx7"""#PTXZ^S_#_```Bx7"""#m$($<$0 1 1 1BxH**844H 2"#TX\^bdlWm#mnnn#''111RSS		 *$??H**8\BBH %HHdd+$,S!A;tT1oM=@PP Q R R R t'((4,,,*,Dh'  	5 	5ADN""q!((1111D---+-D%a(!!$++G4444 w$$dKK"""S	+N8$++A..... 	+ 	+ 	+()sDN8$$$$	+s%   AC
C&%C&4 L L/.L/c                     |s| j         d         j        }|| j        vrt          d|z            t	          dd|g          | j         d<   | j        |                             d           || _        d S )Nr   zstart symbol %s undefinedr   S')r'  r&   r*  r"  r   r   r0  )r   starts     r   	set_startzGrammar.set_starta  s~     	-$Q',E))):UBCCC(D5'::% ''***


r   c                       fdt                        j        d         j        d                    fd j        D             S )Nc                     | v rd S                      |            j                            | g           D ]}|j        D ]} |           d S r
   )r@  r  r   r   )r^   r   r5   mark_reachable_from	reachabler   s      r   rP  z5Grammar.find_unreachable.<locals>.mark_reachable_fromt  sx    I~~MM!^''2.. + + + +A''****++ +r   r   c                     g | ]}|v|	S r"   r"   )rd   r^   rQ  s     r   re   z,Grammar.find_unreachable.<locals>.<listcomp>~  s#    CCCa0B0B0B0B0Br   )r.  r'  r   r*  )r   rP  rQ  s   `@@r   find_unreachablezGrammar.find_unreachableq  sq    	+ 	+ 	+ 	+ 	+ 	+ 	+ EE	D,Q/4Q7888CCCC4,CCCCr   c                    i }| j         D ]}d||<   d|d<   | j        D ]}d||<   	 d}| j                                        D ]5\  }}|D ]-}|j        D ]}||         sd} nd}|r||         sd||<   d} n.6|snUg }	|                                D ]5\  }}
|
s.|| j        vr|| j         vr|dk    r |	                    |           6|	S )NTr   Fr   )r)  r*  r  r   r   r   )r   
terminatesr   rh   some_changeplr   r^   p_terminatesinfiniter1  s              r   infinite_cycleszGrammar.infinite_cycles  si   
  	! 	!A JqMM!
6
 " 	" 	"A!JqMM	K>//11  B  AV 
, 
,)!} " ,1L!E	" (,# )!} /,0JqM*.K  7	: #))++ 	' 	'IQ 'DN**q/F/F1PW<< OOA&&&r   c                     g }| j         D ]>}|s|j        D ]1}|| j        vr&|| j        vr|dk    r|                    ||f           2?|S r&  )r'  r   r  r)  r   )r   r7   r   r^   s       r   undefined_symbolszGrammar.undefined_symbols  sz    ! 	* 	*A V * *DN**q/F/F1PW<<MM1a&)))* r   c                     g }| j                                         D ]"\  }}|dk    r|s|                    |           #|S r&  )r)  r   r   )r   
unused_tokr^   rk   s       r   unused_terminalszGrammar.unused_terminals  sP    
N((** 	% 	%DAqG||A|!!!$$$r   c                     g }| j                                         D ]/\  }}|s(| j        |         d         }|                    |           0|S Nr   )r*  r   r  r   )r   unused_prodr^   rk   r   s        r   unused_ruleszGrammar.unused_rules  s]    %++-- 	& 	&DAq &N1%a(""1%%%r   c                     g }| j         D ]<}|| j        v s1|| j        v s(|                    || j         |         d         f           =|S ra  )r-  r)  r/  r   )r   unusedtermnames      r   unused_precedencezGrammar.unused_precedence  s]     	H 	HH..(d>Q2Q2Qx)B1)EFGGGr   c                     g }|D ]:}d}| j         |         D ]$}|dk    rd}||vr|                    |           %|r9 n|                    d           |S )NF<empty>T)r+  r   )r   betar7   xx_produces_emptyr   s         r   _firstzGrammar._first	  s      	% 	%A$ Z] ) )	>>'+$$a(((   
 MM)$$$r   c                 r   | j         r| j         S | j        D ]}|g| j         |<   dg| j         d<   | j        D ]}g | j         |<   	 d}| j        D ]`}| j        |         D ]P}|                     |j                  D ]3}|| j         |         vr"| j         |                             |           d}4Qa|snn| j         S )Nr   TF)r+  r)  r*  r  rm  r   r   )r   r   rh   rV  r   r   s         r   compute_firstzGrammar.compute_first,  s   : 	:  	  	 ACDJqMM$X
6
 " 	 	ADJqMM		K& / /* / /A![[00 / /DJqM11 JqM00333*.K//
  		 zr   c                    | j         r| j         S | j        s|                                  | j        D ]}g | j         |<   |s| j        d         j        }dg| j         |<   	 d}| j        dd          D ]}t          |j                  D ]\  }}|| j        v r|                     |j        |dz   d                    }d}|D ]A}	|	dk    r1|	| j         |         vr"| j         |         	                    |	           d}|	dk    rd}B|s|t          |j                  dz
  k    rF| j         |j                 D ]3}	|	| j         |         vr"| j         |         	                    |	           d}4݌|sn
| j         S )Nr   r   TFri  )r,  r+  ro  r*  r'  r&   r>  r   rm  r   r1   )
r   rL  kdidaddr   ro   Bfsthasemptyr   s
             r   compute_followzGrammar.compute_followQ  s   ; 	; z 	!    " 	  	 ADKNN 	-$Q',E$XE	F%abb) 2 2%af-- 2 2DAqD---"kk!&1,77#(!$ 0 0A I~~!4;q>2I2I $A 5 5a 8 8 8)- I~~+/# 2qS[[]';';%)[%8 2 2#$DKN#:#:$(KN$9$9!$<$<$<-1F!2"  -	. {r   c                    | j         D ]}|}d}g }	 |t          |          k    rd }n~t          ||          }	 | j        |j        |dz                     |_        n# t          t          f$ r
 g |_        Y nw xY w	 |j        |dz
           |_        n# t          $ r
 d |_        Y nw xY w||_	        |sn|
                    |           |}|dz  }||_        d S Nr   Tr   )r'  r1   r  r  r   r  r  r  r  r   r   r   )r   r   lastlriro   r   lris         r   build_lritemszGrammar.build_lritems  s!   ! 	" 	"AGAHs1vv::CC A,,C*'+~chqsm'D&1 * * *')*-(+1% - - -(,- #& $$$Q)* "AJJ3	" 	"s#    AA43A48BB"!B")Nr   r   r
   )r   r   r   r   rs   ri   r9  rI  rM  rS  rZ  r\  r_  rc  rg  rm  ro  rv  r{  r"   r   r   r$  r$    s        ! ! !H% % %' ' '/ / /2K+ K+ K+ K+h    D D D.7 7 7@	 	 	"    "     F  J) ) ) )v" " " " "r   r$  c                       e Zd ZdS )VersionErrorNr-   r"   r   r   r}  r}    r.   r   r}  c                   &    e Zd Zd Zd Zd Zd ZdS )LRTablec                 >    d | _         d | _        d | _        d | _        d S r
   )r   r   r   	lr_methodrR   s    r   r   zLRTable.__init__  s#    "r   c                 |   t          |t          j                  r|}n$t          d|z             t          j        |         }|j        t          k    rt          d          |j	        | _
        |j        | _        g | _        |j        D ]#}| j                            t!          |            $|j        | _        |j        S )N	import %s&yacc table file version is out of date)rf   types
ModuleTypeexecr   modules_tabversion__tabversion__r}  
_lr_actionr   _lr_gotor   r   _lr_productionsr   r  
_lr_methodr  _lr_signature)r   moduler   r   s       r   
read_tablezLRTable.read_table  s    fe.// 	+HHv%&&&{6*H>11GHHH!,( ) 	; 	;A&&~q'9::::!,%%r   c                 v   	 dd l }n# t          $ r dd l}Y nw xY wt          j                            |          st          t          |d          }|                    |          }|t          k    rt          d          |                    |          | _
        |                    |          }|                    |          | _        |                    |          | _        |                    |          }g | _        |D ]#}| j                            t          |            $|                                 |S )Nr   rbr  )cPickleImportErrorpickleospathexistsopenloadr  r}  r  r   r   r   r   r  close)r   filenamer  in_f
tabversion	signaturer   r   s           r   read_picklezLRTable.read_pickle  s:   	$$$$$ 	 	 	MMMMM	 w~~h'' 	
Hd##[[&&
''GHHHT**T**	T**T**T**  	; 	;A&&~q'9::::

s    c                 D    | j         D ]}|                    |           d S r
   )r   r  )r   r  r   s      r   bind_callableszLRTable.bind_callables  s/    $ 	 	AFF5MMMM	 	r   N)r   r   r   r   r  r  r  r"   r   r   r  r    sP          & & &(  8    r   r  c           
      r    i }| D ]}d||<   g }i }| D ]#}||         dk    rt          ||||| ||           $|S ra  )traverse)XRFPNrk  r\   Fs          r   digraphr    sg    
A  !E
A / /Q4199Q5!Q2...Hr   c           
         |                     |            t          |          }||| <    ||           || <    ||           }|D ]}	||	         dk    rt          |	||||||           t          ||          ||	                   || <   |                    |	g           D ]'}
|
||          vr||                               |
           (||          |k    rxt
          ||d         <   ||          ||d         <   |                                }|| k    r?t
          ||d         <   ||          ||d         <   |                                }|| k    ;d S d S d S )Nr   r   )r   r1   r  minr   MAXINTr   )rk  r  r\   r  r  r  r  drelyaelements               r   r  r    s^   	LLOOOE

AAaD2a55AaD
!A$$C  Q4199Q5!Q2...1Q41!q" 	 	A!}}!A	 	tqyy%)t%)))++ll!AeBiLQ4AeBiLiikkG llll	 y lr   c                       e Zd ZdS )	LALRErrorNr-   r"   r   r   r  r  )  r.   r   r  c                   t    e Zd ZddZd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zd Zd ZddZddZdS )LRGeneratedTabler   Nc                    |dvrt          d|z            || _        || _        |st                      }|| _        i | _        i | _        |j        | _        i | _	        i | _
        d| _        d| _        d| _        g | _        g | _        g | _        | j                                         | j                                         | j                                         |                                  d S )N)SLRr   zUnsupported method %sr   )r  grammarr  r$   logr   r   r'  r   lr_goto_cachelr0_cidhash
_add_countsr_conflictrr_conflict	conflictssr_conflictsrr_conflictsr{  ro  rv  lr_parse_table)r   r  methodr  s       r   r   zLRGeneratedTable.__init__4  s    ((3f<===  	,,C  &2  	""$$$""$$$##%%%r   c                     | xj         dz  c_         |d d          }d}|rVd}|D ]O}|j        D ]E}t          |dd          | j         k    r|                    |j                   | j         |_        d}FP|V|S )Nr   TF	lr0_addedr   )r  r  rw   r   r   r  )r   IJrr  rp   rk  s         r   lr0_closurezLRGeneratedTable.lr0_closureY  s    1 aaaD 		"F " " " "Aq+q11T_DD HHQY'''"&/AK!FF"  		" r   c                 (   | j                             t          |          |f          }|r|S | j                             |          }|si }|| j         |<   g }|D ]e}|j        }|rZ|j        |k    rO|                    t          |                    }|si }||t          |          <   |                    |           |}f|                    d          }|s"|r|                     |          }||d<   n||d<   || j         t          |          |f<   |S )Nr   )r  r   r4   r   r  r   r  )	r   r  rk  gr^   gsr   rh   s1s	            r   lr0_gotozLRGeneratedTable.lr0_gotos  s8   ""BqEE1:.. 	H
 ""1%% 	&A$%Dq! 	 	A	A Q[A%%UU2a55\\ "B!AbeeH		!EE&MM 	 $$R((&		&	)*BqEE1:&r   c                    |                      | j        j        d         j        g          g}d}|D ]}|| j        t          |          <   |dz  }d}|t          |          k     r||         }|dz  }i }|D ]}|j        D ]}d ||<   |D ]j}|                     ||          }|rt          |          | j        v r1t          |          | j        t          |          <   |	                    |           k|t          |          k     |S )Nr   r   )
r  r  r'  r   r  r4   r1   r   r  r   )	r   Cro   r  asymsiir^   rk  r  s	            r   	lr0_itemszLRGeneratedTable.lr0_items  s=   t|7:BCDDE 	 	A&'DRUU#FAA #a&&jj!AFA E $ $ $ $A#E!HH$   MM!Q'' BqEET%555*-a&& A' #a&&jj" r   c                 >   t                      }d}	 | j        j        dd          D ]R}|j        dk    r|                    |j                   (|j        D ]}||vr n	|                    |j                   St          |          |k    rnt          |          }|S rx  )r.  r  r'  r1   r@  r&   r   )r   nullablenum_nullabler   r   s        r   compute_nullable_nonterminalsz.LRGeneratedTable.compute_nullable_nonterminals  s    55	)\-abb1 ) )5A::LL((( ) )A(( ) LL(((8}},,x==L	) r   c                     g }t          |          D ]a\  }}|D ]Y}|j        |j        dz
  k     rD||j        |j        dz            f}|d         | j        j        v r||vr|                    |           Zb|S r   )r>  r  r1   r   r  r*  r   )r   r  transstatenor   r   r   s          r   find_nonterminal_transitionsz-LRGeneratedTable.find_nonterminal_transitions  s    'll 	, 	,NGU , ,:	)) !&A"67Att|888E>>!LLOOO, r   c                 p   i }|\  }}g }|                      ||         |          }|D ]Q}	|	j        |	j        dz
  k     r<|	j        |	j        dz            }
|
| j        j        v r|
|vr|                    |
           R|dk    r6|| j        j        d         j        d         k    r|                    d           |S )Nr   r   r   )r  r  r1   r   r  r)  r   r'  )r   r  r  r  dr_setr   r  termsr  r   r  s              r   dr_relationzLRGeneratedTable.dr_relation  s    qMM!E(A&& 	( 	(AzAEAI%%F1:a<(...~~Q A::!t|7:?BBBLL   r   c                 ,   g }|\  }}|                      ||         |          }| j                            t          |          d          }|D ]E}	|	j        |	j        dz
  k     r0|	j        |	j        dz            }
|
|v r|                    ||
f           F|S )Nr   r   )r  r  r   r4   r  r1   r   r   )r   r  r  emptyr  r   r  r  rp   r   r  s              r   reads_relationzLRGeneratedTable.reads_relation	  s    qMM!E(A&&  A++ 	' 	'AzAEAI%%F1:>*::JJ1v&&&
r   c                    i }i }i }|D ]}d||<   |D ]\  }}	g }
g }||         D ]r}|j         |	k    r|j        }|}||j        dz
  k     r|dz   }|j        |         }||f|v ra|dz   }||j        k     r:|j        |         | j        j        v rn7|j        |         |vrn'|dz   }||j        k     :|                    ||f           |                     ||         |          }| j        	                    t          |          d          }||j        dz
  k     ||         D ]x}|j         |j         k    r|j        |j        k    r$d}||j        k     r0|j        |         |j        |dz            k    rn'|dz   }||j        k     0|
                    ||f           yt|D ](}||vrg ||<   ||                             ||	f           )|
|||	f<   ||fS )Nr   r   r   )r&   r  r1   r   r  r)  r   r  r  r   r4   )r   r  r  r  lookdictincludedictdtransr   r   r  lookbincludesr   r  rp   lir  r5   ro   s                      r   compute_lookback_includesz*LRGeneratedTable.compute_lookback_includesC	  sd     	 	AF1II  6	) 6	)HE1EHuX .- .-6Q;;
 :**'!|Hx(A 1v''
 &\ 15jj vbzT\-CCC % vbz99 %!#aB !15jj %OOQF333adA..A(,,RUUB77A- **2 1 - -Av'' u~~ Aaj..6!9qs33!E aj..
 aV,,,-  2 2K''%'KNA%%uaj1111#(HeQZ  $$r   c                 J      fd} fd}t          |||          }|S )Nc                 2                         |           S r
   )r  rk  r  r  r   s    r   <lambda>z4LRGeneratedTable.compute_read_sets.<locals>.<lambda>	  s    t''1h77 r   c                 2                         |           S r
   )r  r  s    r   r  z4LRGeneratedTable.compute_read_sets.<locals>.<lambda>	  s    t**1a:: r   r  )r   r  ntransr  r  r  r  s   `` `   r   compute_read_setsz"LRGeneratedTable.compute_read_sets	  sC    777777::::::FAr""r   c                 @    fd}fd}t          |||          }|S )Nc                     |          S r
   r"   )rk  readsetss    r   r  z6LRGeneratedTable.compute_follow_sets.<locals>.<lambda>	  s    x{ r   c                 0                         | g           S r
   )r   )rk  inclsetss    r   r  z6LRGeneratedTable.compute_follow_sets.<locals>.<lambda>	  s    x||Ar** r   r  )r   r  r  r  r  r  r  s     ``   r   compute_follow_setsz$LRGeneratedTable.compute_follow_sets	  s6    """"****FAr""r   c                    |                                 D ]j\  }}|D ]b\  }}||j        vr
g |j        |<   |                    |g           }|D ]1}||j        |         vr |j        |                             |           2ckd S r
   )r   r  r   r   )	r   	lookbacks	followsetr  lbr   r   r   r  s	            r   add_lookaheadszLRGeneratedTable.add_lookaheads	  s    "** 	6 	6IE2 6 6q,,*,AL'MM%,, 6 6AU 333U+2215556	6	6 	6r   c                    |                                  }|                     |          }|                     |||          }|                     |||          \  }}|                     |||          }|                     ||           d S r
   )r  r  r  r  r  r  )r   r  r  r  r  lookdincluded
followsetss           r   add_lalr_lookaheadsz$LRGeneratedTable.add_lalr_lookaheads	  s    5577 11!44 ))!UH== 88E8LLx --eXxHH
 	E:.....r   c           
      b   | j         j        }| j         j        }| j        }| j        }| j        }i }|                    d| j                   |                                 }| j        dk    r| 	                    |           d}|D ]*}	g }
i }i }i }|                    d           |                    d|           |                    d           |	D ]}|                    d|j
        |           |                    d           |	D ]f}|j        |j        dz   k    r{|j        dk    rd|d	<   ||d	<   -| j        dk    r|j        |         }n| j         j        |j                 }|D ]/}|
                    ||d
|j
        |fz  f           |                    |          }||dk    r|                    |d          \  }}||j
                 j        \  }}||k     s||k    ri|dk    rc|j
         ||<   |||<   |s5|s3|                    d|           | j                            ||df           ||j
                 xj        dz  c_        ||k    r|dk    rd ||<   |s3|                    d|           | j                            ||df           /|dk     r||          }||j
                 }|j        |j        k    rK|j
         ||<   |||<   ||}}||j
                 xj        dz  c_        ||j
                 xj        dz  c_        n||}}| j                            |||f           |                    d|||         j
        ||                    t/          d|z            |j
         ||<   |||<   ||j
                 xj        dz  c_        1|j        }|j        |dz            }|| j         j        v r|                     |	|          }| j                            t9          |          d          }|dk    ri|
                    ||d|z  f           |                    |          }|,|dk    r||k    rt/          d|z            P|dk     r|                    |d          \  }}|||         j
                 j        \  }}||k    s||k    rh|dk    rb|||         j
                 xj        dz  c_        |||<   |||<   |s3|                    d|           | j                            ||df           ||k    r|dk    rd ||<   |s5|s3|                    d|           | j                            ||df           Jt/          d|z            |||<   |||<   hi }|
D ]2\  }}}||v r(|||         u r|                    d||           d|||f<   3|                    d           d}|
D ]:\  }}}||v r0|||         ur&||f|vr |                    d||           d}d|||f<   ;|r|                    d           i } |	D ]}!|!j        D ]}"|"| j         j        v rd | |"<    | D ]b}#|                     |	|#          }| j                            t9          |          d          }|dk    r|||#<   |                    d|#|           c|||<   |||<   |||<   |dz  },d S )NzParsing method: %sr   r   r   zstate %dz    (%d) %sr   rK  r   zreduce using rule %d (%s)r   r5  z3  ! shift/reduce conflict for %s resolved as reducereducer6  z2  ! shift/reduce conflict for %s resolved as shiftshiftz=  ! reduce/reduce conflict for %s resolved using rule %d (%s)zUnknown conflict in state %dr   zshift and go to state %dz Shift/shift conflict in state %dr   z    %-15s %sz  ! %-15s [ %s ]z"    %-30s shift and go to state %d) r  r'  r-  r   r   r  r    r  r  r  r   r1   r  r&   r  r,  r   r   r   r  r  r   r  r  r   r)  r  r  r4   r   r   r*  )$r   r'  r-  r   r   r  actionpr  str  actlist	st_action
st_actionpst_gotor   laheadsr  r5   sprecslevelrprecrleveloldpppchosenprejectpro   r  rp   	_actprintrG  not_usednkeysr  r^   rh   s$                                       r   r  zLRGeneratedTable.lr_parse_table	  s8   l.l-
%t~666
 NN>V##$$Q'''  d	 d	AGIJGHHRLLLHHZ$$$HHRLLL 5 5!4444HHRLLL p6 p6u
Q..6T>>01If-12Jv..  $~77*+,r*:*.,*=af*E%, 4G 4G '16QUVU]_`Ta6a/b c c c$-MM!$4$4#$='(1uu 9Cq,8W8Wv 9DAH8M8Rv,2VOO&FBRBRY^bhYhYh<=H9IaL<=JqM39 -\& -\039npq0r0r0r040A0H0H"aQYIZ0[0[0[,7,A,I,IQ,N,I,I,I.4.>.>UjEXEX;?IaLL 4: -[039mop0q0q0q040A0H0H"aQXIY0Z0Z0Z)*Q 0;A2-8-B+/9rw+>+><=H9IaL<=JqM?A4WG,7,A,I,IQ,N,I,I,7,D,L,LPQ,Q,L,L,L?CRWG(,(9(@(@"gwAW(X(X(X(+1p12JqM4H*UV-)Y )Y )Y )Y /88VY[8[.\.\(\45H9IaL45JqM$/$9$A$AQ$F$A$A$Ai4Gl JF1Q3K 666 $a 3 3A $ 0 4 4RUUB ? ?A Avv '16PST6T/U V V V$-MM!$4$4#$='(1uu+,662;<^ac<c2d2d,d ,2)*Q 9Cq,8W8Wv 9DJqMDX8Y8^v,2VOO&FBRBRY^biYiYi,7
18L,M,U,UYZ,Z,U,U;<IaL<=JqM39 -[039mop0q0q0q040A0H0H"aQXIY0Z0Z0Z.4.>.>UjEXEX;?IaLL 4: -\& -\039npq0r0r0r040A0H0H"aQYIZ0[0[0[ /88VY[8[.\.\(\34IaL45JqM I" . .1a	>>JqM))A666,-	1a&)HHRLLLH" 2 21a	>>
1-- !1v22II&8!Q???'(H01Iq!f- 		" E ( ( ( (ADL555#'a(  I IMM!Q''$((A3366!"GAJHHA1aHHH"F2J$GBKDH!GBBId	 d	r   r   c                    t          |t          j                  rt          d          |                    d          d         }t
          j                            ||          dz   }	 t          |d          }|	                    dt
          j        
                    |          dt          d| j        d	|d
	           d}|rsi }| j                                        D ]u\  }	}
|
                                D ][\  }}|                    |          }|s	g g f}|||<   |d                             |	           |d                             |           \v|	                    d           |                                D ]\  }}|	                    d|z             |d         D ]}|	                    d|z             |	                    d           |d         D ]}|	                    d|z             |	                    d           |	                    d           |	                    d           nt|	                    d           | j                                        D ]0\  }}|	                    d|d         d|d         d|d           1|	                    d           |rsi }| j                                        D ]u\  }	}
|
                                D ][\  }}|                    |          }|s	g g f}|||<   |d                             |	           |d                             |           \v|	                    d           |                                D ]\  }}|	                    d|z             |d         D ]}|	                    d|z             |	                    d           |d         D ]}|	                    d|z             |	                    d           |	                    d           |	                    d           nt|	                    d           | j                                        D ]0\  }}|	                    d|d         d|d         d|d           1|	                    d           |	                    d           | j        D ]}|j        rZ|	                    d|j        |j        |j        |j        t
          j        
                    |j                  |j        fz             c|	                    dt)          |          |j        |j        fz             |	                    d           |                                 d S # t          $ r} d }~ww xY w)Nz"Won't overwrite existing tabmoduler  r   z.pywz
# zD
# This file is automatically generated. Do not edit.
_tabversion = z

_lr_method = z

_lr_signature = z
    r   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 = { (r   z):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]
)rf   r  r  IOErrorsplitr  r  r   r  r   basenamer  r  r   r   r   r   r   r   r   rV   r&   r1   r   r   r  )r   	tabmodule	outputdirr  basemodulenamer  r   smallerr   r^   ndr&   rk   ro   rq  r   es                    r   write_tablezLRGeneratedTable.write_table
  s   i!122 	@>???"--b17<<	>::UBk	Xs##AGGG 7H%%%%~~~t~~~yyyR S S S G  %!^1133 ' 'EAr#%88:: ' 'a!IIdOO  ,!#RA*+E$K!A!A' 0111!KKMM # #DAqGGGaK(((qT + +	****GGENNNqT + +	****GGENNNN      +,,, N0022 = =DAqGGGQqTTT1Q444;<<<< %!\//11 ' 'EAr#%88:: ' 'a!IIdOO  ,!#RA*+E$K!A!A' .///!KKMM # #DAqGGGaK(((qT + +	****GGENNNqT + +	****GGENNNN      )*** L..00 = =DAqGGGQqTTT1Q444;<<<< GG+,,,( X X6 XGG6!%:;&"'BRBRSTSYBZBZ\]\b:d d e e e e GG<APQPU?VVWWWWGGENNNGGIIIII 	 	 		s   )T
U5 5
V?V  Vc                 <   	 dd l }n# t          $ r dd l}Y nw xY wt          |d          5 }|                    t
          |t                     |                    | j        |t                     |                    ||t                     |                    | j        |t                     |                    | j	        |t                     g }| j
        D ]}|j        rW|                    |j        |j        |j        |j        t           j                            |j                  |j        f           `|                    t          |          |j        |j        d d d f           |                    ||t                     d d d            d S # 1 swxY w Y   d S )Nr   wb)r  r  r  r  dumpr  pickle_protocolr  r   r   r   r   r   rV   r&   r1   r  r  r  r   r   )r   r  r  r  outfoutpr   s          r   pickle_tablezLRGeneratedTable.pickle_table   s   	$$$$$ 	 	 	MMMMM	(D!! 	5TKKo>>>KKo>>>KK	4999KKo>>>KKdO<<<D( K K6 KKKqvrw?O?OPQPV?W?WYZY_ `aaaaKKQdD IJJJJKKdO444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s    EFFF)r   N)r   r   r   )r   r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r%  r,  r"   r   r   r  r  3  s$       ! ! ! !J  4     F  p  :	 	 	(  2  VB% B% B%`  ,  $	6 	6 	6$/ / /0y y yBq q q qt5 5 5 5 5 5r   r  c                     t          j        |           }|j                                        }|j        |j        k    r|                    |j                   |S r
   )r   	_getframe	f_globalscopyf_localsupdate)levelsr   ldicts      r   get_caller_module_dictr6  C  sL    fAKE{aj  QZ   Lr   c           	         g }|                                  }d }|}|D ]}|dz  }|                                }|s	 |d         dk    r#|st          d||fz            |}	|dd          }
n<|d         }	|	}|dd          }
|d         }|dk    r|dk    rt          d||fz            |                    |||	|
f           # t          $ r  t          $ r( t          d	|||                                fz            w xY w|S )
Nr   r   |z%s:%d: Misplaced '|'   :z::=z!%s:%d: Syntax error. Expected ':'z%s:%d: Syntax error in rule %r)
splitlinesr  r   r   	Exceptionstrip)docr   r   r  pstringslastpdlinepsr   rA  rB  assigns               r   parse_grammarrD  O  sd   G~~HEE \ \
HHJJ 		\ts{{ N%&<e}&LMMM uQ4 1221S==Vu__%&ITSXM&YZZZNND%489999 	 	 	 	\ 	\ 	\>$rxxzzAZZ[[[	\ Ns   BC<C=c                   j    e Zd ZddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd Zd Zd Zd ZdS )ParserReflectNc                     || _         d | _        d | _        d | _        t	                      | _        g | _        d| _        | t          t          j
                  | _        d S || _        d S )NF)r  rL  
error_functokensr.  r  r  r   r   r   r   r  )r   r  r  s      r   r   zParserReflect.__init__y  s\    

%%
; ,,DHHHDHHHr   c                     |                                   |                                  |                                  |                                  |                                  d S r
   )	get_startget_error_func
get_tokensget_precedenceget_pfunctionsrR   s    r   get_allzParserReflect.get_all  s^    r   c                     |                                   |                                  |                                  |                                  |                                  |                                  | j        S r
   )validate_startvalidate_error_funcvalidate_tokensvalidate_precedencevalidate_pfunctionsvalidate_modulesr   rR   s    r   validate_allzParserReflect.validate_all  sv      """  """  """zr   c                    g }	 | j         r|                    | j                    | j        r7|                    d                    d | j        D                                  | j        r-|                    d                    | j                             | j        D ]%}|d         r|                    |d                    &n# t          t          f$ r Y nw xY wd                    |          S )Nr   c                 8    g | ]}d                      |          S r-  )r   )rd   r   s     r   re   z+ParserReflect.signature.<locals>.<listcomp>  s"    %D%D%DQbggajj%D%D%Dr   r   r   )rL  r   r   r   rI  pfuncs	TypeError
ValueError)r   partsr   s      r   r  zParserReflect.signature  s    	z )TZ(((y GRWW%D%D$)%D%D%DEEFFF{ 4SXXdk22333[ ' 'Q4 'LL1&&&' :& 	 	 	D	wwu~~s   C C CCc           	         t          j        d          }| j        D ]}	 t          j        |          \  }}n# t
          $ r Y 'w xY wi }t          |          D ]\  }}|dz  }|                    |          }|rd|                    d          }|	                    |          }	|	s|||<   St          j
        |          }
| j                            d|
|||	           d S )Nz\s*def\s+(p_[a-zA-Z_0-9]*)\(r   z;%s:%d: Function %s redefined. Previously defined on line %d)recompiler  inspectgetsourcelinesr  r>  r=  groupr   getsourcefiler  r   )r   frer  lineslinen	counthashr   rG  r&   prevr  s              r   rW  zParserReflect.validate_modules  s%   j899l 	F 	FF&5f==uu    I(// F Ft
IIdOO F771::D$==..D F*/	$#*#8#@#@(()f)15$F F FF	F 	Fs   7
AAc                 D    | j                             d          | _        d S )NrL  )r  r   rL  rR   s    r   rK  zParserReflect.get_start  s    Z^^G,,


r   c                     | j         6t          | j         t                    s| j                            d           d S d S d S )Nz'start' must be a string)rL  rf   string_typesr  r   rR   s    r   rR  zParserReflect.validate_start  sK    :!dj,77 ;9::::: "!; ;r   c                 D    | j                             d          | _        d S )Np_error)r  r   rH  rR   s    r   rL  zParserReflect.get_error_func  s    *..33r   c                    | j         rt          | j         t          j                  rd}nEt          | j         t          j                  rd}n#| j                            d           d| _        d S | j         j        j        }| j         j        j	        }t          j        | j                   }| j                            |           | j         j        j        |z
  }|dk    r'| j                            d||           d| _        d S d S d S )Nr   r   z2'p_error' defined, but is not a function or methodTz$%s:%d: p_error() requires 1 argument)rH  rf   r  FunctionType
MethodTyper  r   __code__co_firstlinenoco_filenamerb  	getmoduler  r@  co_argcount)r   ismethodelineefiler  argcounts         r   rS  z!ParserReflect.validate_error_func  s    ? 	"$/5+=>> DOU-=>> STTT!
O,;EO,8E&t77FLV$$$/;hFH1}}EueTTT!


%	" 	"  }r   c                 Z   | j                             d          }|s#| j                            d           d| _        d S t	          |t
          t          f          s#| j                            d           d| _        d S |s#| j                            d           d| _        d S || _        d S )NrI  zNo token list is definedTztokens must be a list or tupleztokens is empty)r  r   r  r   rf   r   r   rI  )r   rI  s     r   rM  zParserReflect.get_tokens  s    )) 	HNN5666DJF&4-00 	HNN;<<<DJF 	HNN,---DJFr   c                     d| j         v r#| j                            d           d| _        d S t                      }| j         D ]6}||v r| j                            d|           |                    |           7d S )Nr   z.Illegal token name 'error'. Is a reserved wordTzToken %r multiply defined)rI  r  r   r.  r   r@  )r   r  rh   s      r   rT  zParserReflect.validate_tokens  s    dk!!HNNKLLLDJFEE	 	 	AI~~  !<a@@@MM!	 	r   c                 D    | j                             d          | _        d S )Nr   )r  r   r   rR   s    r   rN  zParserReflect.get_precedence  s    JNN<00			r   c                    g }| j         r{t          | j         t          t          f          s#| j                            d           d| _        d S t          | j                   D ]!\  }}t          |t          t          f          s$| j                            d           d| _         d S t          |          dk     r%| j                            d|           d| _         d S |d         }t          |t                    s$| j                            d           d| _         d S |dd          D ]W}t          |t                    s%| j                            d	           d| _          d S |	                    |||dz   f           X#|| _
        d S )
Nz"precedence must be a list or tupleTzBad precedence tabler9  z?Malformed precedence entry %s. Must be (assoc, term, ..., term)r   z)precedence associativity must be a stringr   z precedence items must be strings)r   rf   r   r   r  r   r>  r1   rm  r   preclist)r   r  r8  r   r7  r1  s         r   rU  z!ParserReflect.validate_precedence  s   9 	<di$77 CDDD!
%di00 < <q!!dE]33 HNN#9:::!%DJFFq66A::HNN#dfghhh!%DJFF!!%66 HNN#NOOO!%DJFFabbE < <D%dL99 'IJJJ%)
OOT5%'$:;;;;< !r   c                    g }| j                                         D ]\  }}|                    d          r|dk    r!t          |t          j        t          j        f          rMt          |d|j        j	                  }t          j        |          }|                    ||||j        f           |                    d            || _        d S )Np_ro  rt  c                 X    | d         t          | d                   | d         | d         fS )Nr   r   r9  r   rU   )
p_functions    r   r  z.ParserReflect.get_pfunctions.<locals>.<lambda>D  s-    qM
1qMqM	1 r   )key)r  r   
startswithrf   r  rq  rr  rw   rs  rt  rb  rv  r   __doc__sortr[  )r   p_functionsr&   itemr   r  s         r   rO  zParserReflect.get_pfunctions7  s    ***,, 	G 	GJD$??4(( DI,=,=$!3U5E FGG Gt%5t}7STT *400""D&$#EFFF
 	   	 	 	
 "r   c                 p   g }t          | j                  dk    r#| j                            d           d| _        d S | j        D ]t\  }}}}t	          j        |          }| j        |         }t          |t          j	                  rd}nd}|j
        j        |k    r*| j                            d|||j                   d| _        |j
        j        |k     r*| j                            d|||j                   d| _        |j        s#| j                            d|||j                   	 t          |||          }	|	D ]}
|                    ||
f           nE# t"          $ r8}| j                            t%          |                     d| _        Y d }~nd }~ww xY w| j                            |           v| j                                        D ]Y\  }}|                    d	          r't          |t          j        t          j	        f          rB|                    d
          rX|                    d	          r!|dk    r| j                            d|           t          |t          j                  r|j
        j        dk    s/t          |t          j	                  r|j        j
        j        dk    rr|j        rk	 |j                            d          }|d         dk    r1| j                            d|j
        j        |j
        j        |           H# t8          $ r Y Uw xY w[|| _        d S )Nr   z+no rules of the form p_rulename are definedTr9  r   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  t_ro  z%r not defined as a functionr   r:  z9%s:%d: Possible grammar rule %r defined without p_ prefix)r1   r[  r  r   rb  re  r  rf   r  rr  rs  rw  r   r  r   rD  r   r   rV   r  r@  r   r  rq  __func__r  ru  rt  r  r  )r   r  r   r  r&   r>  r   r   reqargsparsed_gr  r$  rh   rk   s                 r   rV  z!ParserReflect.validate_pfunctionsL  sc   t{q  HNNHIIIDJF'+{ 	) 	)#D&$(00D:d#D$ 011 }(722FdTXTabbb!

*W44DdDRVR_```!

\ )  !d!%tT]< < < <&,S$==H% 2 2ay11112" & & &HNN3q66***!%DJJJJJJ&   ((((
 J$$&& 	 	DAq||D!! jU5GIY4Z&[&[ ||D!! ||D!! Da9nn  !?CCCAu122 	qz7MQR7R7Rq%"233 8S89
8K8W[\8\8\9 iooc22q6S== H,,-h-.Z-CQZE^`ac c c%    s+   ,-E
F$.FFAL
L*)L*r
   )r   r   r   r   rP  rX  r  rW  rK  rR  rL  rS  rM  rT  rN  rU  rO  rV  r"   r   r   rF  rF  x  s                 6F F F2- - -; ; ;4 4 4" " ",  (  1 1 1! ! !>" " "*: : : : :r   rF  c           
         |t           }|rd}|t          t          j                  }rOfdt	                    D             }t          |          }d|vr t          j        |d                  j        |d<   nt          d          }|	t          |t          j                  r|j        }nrd|vr	|d         }ne|                    d          }d                    |d d                   }t          d|z             t          t          j        |         dd	          }t           j                            |          }	|                    d
          }|r!t          |t(                    rd|vr|dz   |z   }|||d<   t+          ||          }|                                 |j        rt1          d          |                                }	 t5                      }|r|                    |          }n|                    |          }|s||k    rf	 |                    |j                   t?          ||j                   }|j!        a!|S # tD          $ r }|#                    d|           Y d }~nd }~ww xY wnD# tH          $ r,}|#                    t)          |                     Y d }~nd }~wtJ          $ r Y nw xY w|
|r}	 t          tM          t           j                            |	|          d                    }
nN# tN          $ r3}|#                    d|d|           tQ                      }
Y d }~nd }~ww xY wtQ                      }
|
)                    dtT                     d}|+                                rt1          d          |j         s|#                    d           tY          |j-                  }|j.        D ]K\  }}}	 |/                    |||           # t`          $ r }|#                    d|           Y d }~Dd }~ww xY w|j1        D ]U\  }}|\  } }!}"}#	 |2                    |"|#|| |!           '# t`          $ r"}|                    d|           d}Y d }~Nd }~ww xY w	 ||3                    |j4                   n|3                    |           n;# t`          $ r.}|                    t)          |                     d}Y d }~nd }~ww xY w|rt1          d          |5                                }$|$D ])\  }%}&|                    d|&j6        |&j7        |%           d}*|8                                }'|'rp|
)                    d	           |
)                    d           |
)                    d	           |'D ].}|#                    d|           |
)                    d|           /|rp|
)                    d	           |
)                    d           |
)                    d	           ts          |j:                  D ]\  }(})|
)                    d|(|)           |;                                }*|*D ])}&|#                    d|&j6        |&j7        |&j<                   *t{          |'          dk    r|#                    d           t{          |'          dk    r#|#                    d t{          |'                     t{          |*          dk    r|#                    d!           t{          |*          dk    r#|#                    d"t{          |*                     |rk|
)                    d	           |
)                    d#           |
)                    d	           t}          |j?                  }+|+@                                 |+D ]A}|
)                    d$|d%                    d& |j?        |         D                                  B|
)                    d	           |
)                    d'           |
)                    d	           t}          |jA                  },|,@                                 |,D ]A}-|
)                    d$|-d%                    d( |jA        |-         D                                  B|
)                    d	           |r`|B                                }.|.D ]}/|#                    d)|/           |C                                }0|0D ]}1|                    d*|1           d}|D                                }2|2D ]\  }}|                    d+||           d}|rt1          d          |r|E                    d,|            t          || |
          }|rt{          |jG                  }3|3dk    r|#                    d-           n|3dk    r|#                    d.|3           t{          |jH                  }4|4dk    r|#                    d/           n|4dk    r|#                    d0|4           |r|jG        s|jH        r|
#                    d	           |
#                    d1           |
#                    d	           |jG        D ]\  }5}6}7|
#                    d2|6|5|7           t                      }8|jH        D ]\  }5}9}:|5t          |9          t          |:          f|8v r(|
#                    d3|5|9           |
#                    d4|:|5           |#                    d3|5|9           |#                    d4|:|5           |8K                    |5t          |9          t          |:          f           g };|jH        D ]R\  }5}9}:|:jL        sE|:|;vrA|
#                    d5|:           |#                    d5|:           |;M                    |:           S|rK	 |N                    ||	|           n2# tN          $ r%}|#                    d6|d|           Y d }~nd }~ww xY w|rJ	 |O                    ||           n2# tN          $ r%}|#                    d6|d|           Y d }~nd }~ww xY w|                    |j                   t?          ||j                   }|j!        a!|S )7Nr   c                 4    g | ]}|t          |          fS r"   )rw   )rd   rq  r  s     r   re   zyacc.<locals>.<listcomp>  s(    ???a1gfa(()???r   __file__r   r9  r  r   r  r   __package__rL  )r  zUnable to build parserz.There was a problem loading the table file: %rr  zCouldn't open z. z5Created 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 rulezUnused terminals:zToken %r defined, but not usedz    %sr$  zRule %-5d %sz$%s:%d: Rule %r defined, but not usedr   zThere is 1 unused tokenzThere are %d unused tokenszThere is 1 unused rulezThere are %d unused rulesz'Terminals, with rules where they appearz
%-20s : %sr   c                 ,    g | ]}t          |          S r"   rU   rc   s     r   re   zyacc.<locals>.<listcomp>G  s    7`7`7`1A7`7`7`r   z*Nonterminals, with rules where they appearc                 ,    g | ]}t          |          S r"   rU   rc   s     r   re   zyacc.<locals>.<listcomp>O  s    :i:i:ia3q66:i:i:ir   zSymbol %r is unreachablez)Infinite recursion detected for symbol %rz0Precedence rule %r defined for unknown symbol %rzGenerating %s tablesz1 shift/reduce conflictz%d shift/reduce conflictsz1 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)zrejected rule (%s) in state %dzRule (%s) is never reducedzCouldn't create )P
tab_moduler   r   r   dirdictr  r  r6  rf   r  r  r  r   r  rw   r  r  dirnamer   rV   rF  rP  r   r,   r  r  r  r  r  r  r   rH  r   r<  r   r}  r  r  r  r$   r    __version__rX  r$  rI  r  r9  r"  r  rI  rM  rL  r\  r   r   r_  r>  r'  rc  r&   r1   r   r)  r  r*  rS  rZ  rg  r   r  r  r  r.  r4   r@  r  r   r%  r,  )<r  r   r  r  rL  check_recursionoptimizewrite_tables	debugfiler   debuglogerrorlog
picklefile_itemsr  srcfiler^  pkgnamepkgpinfor  lrread_signaturerL   r$  errorsr  r1  r7  r8  funcnamegramr   r   rA  rB  r\  r   r   r_  rh   r   rc  r  nontermsnontermunreachableurY  infunused_precnum_srnum_rrr   r   
resolutionalready_reportedrulerejectedwarned_nevers<     `                                                         r   yaccr    s7    	  SZ((  *????3v;;???VU"" #E,,? @ IE*&q))
 i!122 		H(GG)##
+!,,((5":..[7*+++!#+g"6
BGGGOOG,,	 ))M
"
"C
 .z)S)) .ic	I-I
 g %X...E	MMOOO{ 20111 !!IYY 	6^^J77NN]]955N 	V)33V!!%+...!"e&677 V V V  !QSTUUUUUUUUV ! ! !Q             	$($T"',,y)*L*Lc%R%RSS ( ( (   999aa!HIII%<<( "||HMMI;WWWF  20111 =;<<< el##G $n & &eU	&""46666 	& 	& 	&T1%%%%%%%%	&  -  $%)"dHd	""8T8T4HHHH 	 	 	NN4###FFFFFF	
=ek****e$$$   s1vv  20111  1133&  	TTVZV_aeajloppp//11 *b)***b$ 	* 	*D=tDDDMM(D))))  0bi   bg122 	0 	0DAqMM.!Q//// ''))L b b?DIW[W`aaaa
!!2333
q  5s;K7L7LMMM
<A1222
<14c,6G6GHHH b?@@@bW&''

 	c 	cDMM,chh7`7`HYZ^H_7`7`7`.a.abbbbbBCCCb,-- 	l 	lGMM,:i:i7K_`gKh:i:i:i1j1jkkkkb ..00 	< 	<A7;;;;**,, 	 	CNNFLLLFF++--K"  eI5RVWWW 20111  7-v666	'68	4	4B CR_%% Q;;67777aZZ8&AAAR_%%Q;;78888aZZ96BBB  ."/ .R_ .&&&&(o 	q 	q"E3
VY\^ceopppp55%'_ 	B 	B!E4r$xxH.2BBBZ\acghhh=xOOOZ\acghhh=xOOO  %D2h<<!@AAAA%'_ 	. 	.!E4# .)E)E  !=xHHH  !=xHHH##H---  H	HNN9i;;;; 	H 	H 	HAAFGGGGGGGG	H  I	IOOJ	2222 	I 	I 	IQQGHHHHHHHH	I ek"""b%*++FLEMs   AI8 7I
 

I4I/*I8 /I44I8 8
J9"J))J98J9;K= =
L:)L55L:	O!!
P+PP"P<<
Q(Q##Q(,2R 
S)$SSn2 2
o!<oo!'o> >
p-p((p-)<r`  r  r   os.pathr  rb  base64r=   r  r  	yaccdebug
debug_filer  
default_lrr   r   r2   r)  version_info
basestringrm  rV   maxsizer  objectr   r$   r<  r,   r8   r;   r@   rG   rD   r?   rA   rE   rH   rM   rO   rY   r   ra  r<  r   r  r  r   r"  r$  r}  r  r  r  r  r  r6  rD  rF  r  r"   r   r   <module>r     s  | 
			  



     	 


	  ALLL	       $       	 	 	 	 		 	 	 	  9 9 9 
		      

 
 
:        , , , , , , , ,hZC ZC ZC ZC ZC ZC ZC ZCL /004B- B- B- B- B- B- B- B-P- - - - -V - - -\+ + + + +V + + +6   	 	 	 	 	9 	 	 	e" e" e" e" e"f e" e" e"^	 	 	 	 	9 	 	 	9 9 9 9 9f 9 9 9h	 	 	" " ".	 	 	 	 		 	 	 	5 5 5 5 5w 5 5 5`       RN N N N NF N N Nl i
RVDJ$$X X X X X Xr   