
    	                        U d dl Z d dlmZmZ d dlmZ d dlmZmZm	Z	m
Z
 d dlmZ d dlZd dlmZmZ 	 d dlmZ dZ ed	d
      Zg dZddgZej1                  dddd d       ej1                  dddg        ej1                  dddd       e j2                  dkD  rdndZee   ed<   ej1                  d d! ed"e#      e j:                  d$%       ej1                  d& ed'e#      d()       eD ]x  Z eee       r5ejC                  ed*          ej1                  d+ed    z   d,ed*   z   d-.       A eee      r(ejC                  e       ej1                  d,ez   d-.       r e"d/       d0 Z#d3d1Z$d2 Z%y# e$ r d	ZY Cw xY w)4    N)ArgumentParserFileType)indent)DEBUGINFOWARNERROR)Optional)Larklogger)r   TFz;Look at the Lark documentation for more info on the options)add_helpepilog))ddebugkeep_all_tokensregexpropagate_positionsmaybe_placeholders	use_bytesstartlexerz-vz	--verbosecountz/Increase Logger output level, up to three times)actiondefaulthelpz-sz--startappend)r   r   z-lz--lexer
contextual)basicr   )r   choices)      zutf-8encodingz-oz--outw)r"   z the output file (default=stdout))typer   r   grammar_filerzA valid .lark file)r$   r      -z--
store_true)r   z4flags must only contain strings or tuples of stringsc                    t        j                  t        t        t        t
        ft        | j                  d                t        r't        j                  t        j                                t        | j                        dk(  r| j                  j                  d       t        D ci c]  }|t        | |       }}t!        | j"                  fddi|| j$                  fS c c}w )Nr    r   r   parserlalr)r   setLevelr	   r   r   r   minverbosehas_interegularinteregular_loggergetEffectiveLevellenr   r   optionsgetattrr   r%   out)	namespacenkwargss      &lib/third_party/lark/tools/__init__.py
build_lalrr;   .   s    
OOUD$.s93D3Da/HIJ##F$<$<$>?
9??q w'0781aA&&F8	&&@v@@)--OO 9s   )C#c                     t        j                  | ||||      }t        |d      }|t        j                  }|y 	 |j                  |       y # t        $ r Y y w xY w)Nz# )warningsformatwarningr   sysstderrwriteOSError)messagecategoryfilenamelinenofilelinetexts          r:   showwarning_as_commentrJ   8   s_    !!'8XvtLD$D|zz<

4 s   A 	AAc                  "    t         t        _        y )N)rJ   r=   showwarning     r:   make_warnings_commentsrO   F   s
    1HrN   )NN)&r?   argparser   r   textwrapr   loggingr   r   r   r	   typingr
   r=   larkr   r   interegularr1   r0   ImportErrorlalr_argparserflagsr4   add_argumentversion_infor"   str__annotations__stdoutflag
isinstancetupler   NotImplementedErrorr;   rJ   rO   rM   rN   r:   <module>rb      s   
 -  , ,   8O  7tu	 G
   D+gq  PA   B   D)Hb  I   D)\Kb  c%(%5%5%>'D(3- H   D'x0PZ]ZdZd  lN   O   N#1QXl  mD$tAw##C$q'M4$q'>,#W	D#	t##D4K#E!"XYY P2u  Os   E4 4E?>E?