
                            S SK JrJr  S SKJr  S SKJr  S SKJrJ	r	J
r
JrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJr  S SKrS SKrS SK r S SK!r!S SK!J"r"  S SK#J$r$  S SK%J&r&  S S	K'J(r(  S SK)r)S S
K*J+r+J,r,J-r-  S SK.J/r/  S SK0J1r1  \"Rd                  " \35      r4\"Rj                  " \4\"Rl                  5      r7/ SQr8S r9S r:S\Rv                  S4S jr<S r=\>S:X  a  \=" 5         gg)    )ABCabstractmethod)Sequence)
ModuleType)TypeVarGenericTypeTupleListDictIterator
CollectionCallableOptional	FrozenSetAnyUnionIterableIOTYPE_CHECKINGoverloadPatternClassVarSetMappingN)path)defaultdict)partial)ArgumentParser)lalr_argparser
build_lalrmake_warnings_comments)Rule)TerminalDef)ztools/standalone.pyzexceptions.pyzutils.pyztree.pyzvisitors.pyz
grammar.pyzlexer.pyz	common.pyzparse_tree_builder.pyzparsers/lalr_parser.pyzparsers/lalr_analysis.pyzparser_frontends.pyzlark.pyzindenter.pyc                    S n/ n[        [        5      nU  Hw  nUR                  S5      (       aD  US   S:X  a  USS  R                  5       nM7  US   S:X  a  X1==   U-  ss'   S n/ nMR  [	        U5      eU(       d  Mf  UR                  U5        My     UR                  5        VVs0 s H  u  pRUSR                  U5      _M     snn$ s  snnf )Nz###   {   } )r   list
startswithstrip
ValueErrorappenditemsjoin)linessectiontextsectionslinenames         (lib/third_party/lark/tools/standalone.pyextract_sectionsr9   I   s    GD4 H??5!!Aw#~qr(..*aC!T)! &&WKK  3;..2BC2BJDD"''$-2BCCCs   $Cc                    / n[         R                  nSnSn[        R                  " U 5      nU H  u  pgu  pu  pnX:  a  SnX:  a  UR	                  SX-
  -  5        U[         R
                  :X  a&  U[         R                  :X  a  UR	                  S5        O7U[        R                  :X  a  UR	                  S5        OUR	                  U5        UnUnU
nM     SR                  U5      $ )zStrip comments and docstrings from a file.
Based on code from: https://stackoverflow.com/questions/1769332/script-to-remove-python-comments-docstrings
r    z#--z##
r*   )tokenINDENTtokenizegenerate_tokensr/   STRINGCOMMENTr1   )line_genresprev_toktypelast_linenolast_coltokgentoktypettextslinenoscolelinenoecolltexts                r8   strip_docstringsrP   ]   s     C<<LKH%%h/FCI?'% H?JJsdo./ell"|u||'CJJu(((JJvJJu DJ" 773<    Fc                   ^^^^ Tc  [        [        US9mSS KmSS KmSS KmUUUU4S jnU4S jnT" S[
        R                  -  5        T" S[
        R                  -  5        T" 5         [        [        5       H  u  pg[        [        R                  R                  [        U5      5       n[        U5      S   n	U(       a1  [        [        [         [#        U	R%                  S5      5      5      5      n	T" U	5        S S S 5        M     U R'                  [(        [*        /5      u  pT" S	5        U(       aA  T" S
5        U" U
5        T" S5        U" S5        T" S5        U" U5        T" S5        U" S5        O0T" S
5        T" U
5        T" S5        T" S5        T" U5        T" S5        T" S5        T" S5        T" S5        T" S5        g ! , (       d  f       GM[  = f)N)filer   c                    > TR                  U TR                  5      nTR                  U5      nT" [        TR	                  U5      5      5        g )N)dumpsHIGHEST_PROTOCOLcompressrepr	b64encode)objscbase64outputpicklezlibs      r8   compressed_output)gen_standalone.<locals>.compressed_output   s?    LLf556MM!tF$$Q'()rQ   c                 ,   > T" S[        5       -  5        g )NzD%(name)s = pickle.loads(zlib.decompress(base64.b64decode(%(name)s))))locals)r7   r^   s    r8   output_decompress)gen_standalone.<locals>.output_decompress   s    UX^X``arQ   z2# The file was automatically generated by Lark v%sz__version__ = "%s"
standaloneTzimport pickle, zlib, base64zDATA = ()DATAzMEMO = (MEMOz	Shift = 0z
Reduce = 1zdef Lark_StandAlone(**kwargs):z3  return Lark._load_from_dict(DATA, MEMO, **kwargs))r   printr_   r`   r]   lark__version__	enumerateEXTRACT_STANDALONE_FILESopenosr   r1   _larkdirr9   rP   nextiter
splitlinesmemo_serializer$   r#   )	lark_instr^   outrW   ra   re   ipyfilefcodedatamr]   r_   r`   s    `          @@@r8   gen_standaloner   |   s   ~S)* *
b ?$BRBRRS
$"2"223
H78	"'',,x01Q#A&|4D'd4??4;P6Q(RS4L	 21 9 &&T':;GD
()z$s&!z!s&!ztszq	s ;
<
+,
@A; 21s   +AG
G	c                     [        5         [        SS[        /SS9n U R                  SSSSS	S
9  [	        [
        R                  5      S:X  a5  U R                  [
        R                  5        [
        R                  " S5        U R                  5       n[        U5      u  p#[        X#UR                  S9  UR                  R                  5         UR                   R                  5         g )Nz&prog='python -m lark.tools.standalone'zLark Stand-alone Generator Toolz;Look at the Lark documentation for more info on the options)progdescriptionparentsepilogz-cz
--compress
store_truer   zEnable compression)actiondefaulthelp   )rx   rW   )r"   r   r    add_argumentlensysargv
print_helpstderrexit
parse_argsr!   r   rW   rx   closegrammar_file)parsernsrw   rx   s       r8   mainr      s    !IWx%3$4=z|F
l<Qef
388}#**%				B^NI9<FFLLNOOrQ   __main__)?abcr   r   collections.abcr   typesr   typingr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   	REPatternr   r   r   r   r=   r?   rq   r   collectionsr   	functoolsr   argparser   rl   
lark.toolsr    r!   r"   lark.grammarr#   
lark.lexerr$   dirname__file___dirr1   pardirrr   ro   r9   rP   stdoutr   r   __name__ rQ   r8   <module>r      s   6 $ $         	  #  #  I I  "||H99T4;;' "D(> &*szzE /Bh" zF rQ   