o
    V۷i	                     @   s  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 z
d dlmZ dZW n eyE   d	ZY nw ed	d
dZg dZddgZejdddd dd ejdddg d ejddddd ejddedd d!e jd"d# ejd$ed%d d!d&d' eD ]6Zeeereed(  ejd)ed   d*ed(  d+d, qeeeree ejd*e d+d, qed-d.d/ Z d4d0d1Z!d2d3 Z"dS )5    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   choicesz-oz--outwzutf-8)encodingz 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                    sx   t ttttft jd  trt	t 
  t jdkr% jd  fddtD }t jfddi| jfS )N   r   r   c                    s   i | ]}|t  |qS  )getattr).0n	namespacer(   I/home/ubuntu/vllm_env/lib/python3.10/site-packages/lark/tools/__init__.py
<dictcomp>3   s    zbuild_lalr.<locals>.<dictcomp>parserlalr)r   setLevelr   r   r   r   minverbosehas_interegularinteregular_loggergetEffectiveLevellenr   r   optionsr
   r"   out)r-   kwargsr(   r,   r.   
build_lalr-   s   r<   c                 C   s\   t | ||||}t|d}|d u rtj}|d u rd S z|| W d S  ty-   Y d S w )Nz# )warningsformatwarningr   sysstderrwriteOSError)messagecategoryfilenamelinenofilelinetextr(   r(   r.   showwarning_as_comment7   s   
rJ   c                   C   s
   t t_d S )N)rJ   r=   showwarningr(   r(   r(   r.   make_warnings_commentsE   s   
rL   )NN)#r?   argparser   r   textwrapr   loggingr   r   r   r   typingr	   r=   larkr
   r   interegularr6   r5   ImportErrorlalr_argparserflagsr9   add_argumentstdoutflag
isinstancetupler   strNotImplementedErrorr<   rJ   rL   r(   r(   r(   r.   <module>   s@    	
"



