+
    کh                         ^ RI Ht ^ RIHt ^ RIHt ]P                  t]P                  t]P                  t ! R R]4      t	R# )    )tree)PythonTokenTypes)
BaseParserc                   l  a a ] tR t^t oRt/ R]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR	]P                  bR
]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR]P                  bR]P                   bR]P"                  R]P$                  R]P&                  R]P(                  R]P*                  R]P,                  R]P.                  R]P0                  R]P0                  R]P2                  /
Ct]P6                  t]P<                  ]P>                  ]P@                  ]PB                  ]PD                  ]PF                  ]PH                  ]PJ                  ]PL                  ]PN                  ]PP                  ]PR                  ]PT                  ]PV                  /t,R%V 3R llt-V 3R lt.R t/R  t0V 3R! lt1R" t2R# t3R$t4Vt5V ;t6# )&Parserz
This class is used to parse a Python file, it then divides them into a
class structure of different scopes.

:param pgen_grammar: The grammar object of pgen2. Loaded by load_grammar.
	expr_stmtclassdeffuncdef
file_inputimport_nameimport_from
break_stmtcontinue_stmtreturn_stmt
raise_stmt
yield_exprdel_stmt	pass_stmtglobal_stmtnonlocal_stmt
print_stmtassert_stmtif_stmt	with_stmtfor_stmt
while_stmttry_stmtsync_comp_for	decoratorlambdeflambdef_nocondnamedexpr_testc                T   < \         SV `  WVR 7       . V n        . V n        ^ V n        R# ))error_recoveryN)super__init__syntax_errors_omit_dedent_list_indent_counter)selfpgen_grammarr$   start_nonterminal	__class__s   &&&&5/usr/lib/python3/dist-packages/parso/python/parser.pyr&   Parser.__init__@   s4    (6 	 	8  !#     c                   < V P                   '       d)   V P                  R 8w  d   \        hV P                  V4      p\        SV `  V4      # )r   )_error_recovery_start_nonterminalNotImplementedError_recovery_tokenizer%   parse)r*   tokensr-   s   &&r.   r6   Parser.parseH   sB    &&,6)),,V4Fw}V$$r0   c                     V P                   V,          ! V4      pV#   \         d1    TR8X  d   T^ ,          .T^R ,           pT P                  Y4      p T# i ; i)z
Convert raw node information to a PythonBaseNode instance.

This is passed to the parser driver which calls it whenever a reduction of a
grammar rule produces a new complete node, so that the tree is build
strictly bottom-up.
suite)node_mapKeyErrordefault_node)r*   nonterminalchildrennodes   &&& r.   convert_nodeParser.convert_nodeQ   sg    		<==-h7D   	<g%
 %QK=8Ab>9$$[;D	<s    7AAc                
   V\         8X  dI   W P                  P                  9   d   \        P                  ! W$V4      # \        P
                  ! W$V4      # V P                  P                  V\        P                  4      ! W$V4      # N)	NAME_pgen_grammarreserved_syntax_stringsr   KeywordName	_leaf_mapgetOperator)r*   typevalueprefix	start_poss   &&&&&r.   convert_leafParser.convert_leafe   s_    4<**BBB||Ef==yy6::~~!!$6uPPr0   c                  < V P                   R	,          P                  pV'       d   VR	,          P                  4       pMRpV P                  R8X  EdD   VP                  \
        P                  8X  gY   VP                  \        8X  Ed   VP                  P                  R4      '       g   VP                  P                  R4      '       g   V P                   R	,          P                  P                  R8X  d    V P                   R	,          P                  P                  \
        P                  ,          pVP                  P                  '       dH   VP                   '       g6   VP                  V P                   R	,          n
        V P#                  V4       R# V P&                  '       g   \(        SV `U  V4      # R pV! V P                   4      pV P-                  V^,           4      '       d   V P#                  V4       MVw  rxrV\.        8X  d&   V P0                  P3                  V P4                  4       \6        P8                  ! VP:                  WV
4      pV P                   R	,          P                  P3                  V4       V P                   R	,          pVP<                  R8X  d&    VP                  P>                  R,          Vn
        R# R#   \$         d     ELBi ; i  \$         d     R# i ; i)
   Nr   
simple_stmtc                     \        \        \        V 4      4      4       FI  w  rVP                  R 8X  d    V# VP                  R8X  g   K,  \	        VP
                  4      ^8w  g   KH   V# 	  X# )r   r:   )reversedlist	enumerater?   lennodes)stackuntil_index
stack_nodes   &  r.   current_suite,Parser.error_recovery.<locals>.current_suite   sp     ,4D59I4J+K'))\9   ++w6 :++,1 ,L r0   r:   stmtr;   ) r_   r^   get_last_leafr3   rN   r   	ENDMARKERDEDENTrO   endswithdfa	from_ruletransitionsNEWLINEnext_dfais_final
dfa_pushes
_add_tokenr=   r2   r%   r$   _stack_removalINDENTr(   appendr)   r   PythonErrorLeafnamer?   arcs)r*   token	tos_nodes	last_leafplanrb   r`   typrO   rQ   rP   
error_leaftosr-   s   &&           r.   r$   Parser.error_recoveryo   s    JJrN((	!"335II""l2/999JJ&(1I1I$1O1O"11$77
 zz"~!!++}<
::b>--99:J:R:RSD }}---dooo .2]]

2*.###7)%00	 $DJJ/{Q//OOE",1)C	f} &&--d.B.BC--chh&QJJJrN  ''
3jjn??g%'',,v.	 &W   `  s$   7<K
 $"K 
KKK+*K+c                F   V P                   VR   UUu. uF  q"P                   F  q3NK  	  K  	  pppV'       dJ   \        P                  ! V4      pV P                   V^,
          ,          P                  P	                  V4       . V P                   VR % \        V4      # u uppi rE   )r_   r^   r   PythonErrorNoders   bool)r*   start_indexra   rA   	all_nodess   &&   r.   rq   Parser._stack_removal   s    ,0JJ{|,Db,DjQaQaTQaT,D	b''	2DJJ{Q'--44T:#%

;< I cs   Bc              #  z  "   V F  pV^ ,          pV\         8X  dr   V P                  pV'       dD   VR,          V P                  8X  d,   VP                  4        V ;P                  ^,          un        Kn  V ;P                  ^,          un        M$V\        8X  d   V ;P                  ^,          un        Vx  K  	  R# 5i)r   Nr;   )rg   r(   r)   poprr   )r*   r7   rw   r{   os   &&   r.   r5   Parser._recovery_tokenize   s     E(Cf} **2$"6"66EEG((A-($$)$$$)$K s   -B;BB;)r)   r(   r'   )Tr   )7__name__
__module____qualname____firstlineno____doc__r   ExprStmtClassFunctionModule
ImportName
ImportFromKeywordStatement
ReturnStmt	YieldExpr
GlobalStmt
AssertStmtIfStmtWithStmtForStmt	WhileStmtTryStmtSyncCompFor	DecoratorLambda	NamedExprr<   
PythonNoder>   r   STRINGStringNUMBERNumberrl   Newlinerf   	EndMarkerFSTRING_STRINGFStringStringFSTRING_STARTFStringStartFSTRING_END
FStringEndrK   r&   r6   rB   rR   r$   rq   r5   __static_attributes____classdictcell____classcell__)r-   __classdict__s   @@r.   r   r      s=    T]]DJJ 	4== 	dkk	
 	t 	t 	d++ 	.. 	t 	d++ 	dnn 	D)) 	T** 	t 	..  	d++!" 	t#$ 	4;;T]]DLLdnnDLL)) 	T^^4;;$++$..=H@ ??L 	  $,,""DNN''););&&(9(9$$dooI!%(QDL r0   r   N)
parso.pythonr   parso.python.tokenr   parso.parserr   rF   rr   rg   r    r0   r.   <module>r      s?     / # 		 	 		 	 CZ Cr0   