o
    0 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debugZkeep_all_tokensregexZpropagate_positionsZ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%   _/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/lark/tools/__init__.py
<dictcomp>3   s    zbuild_lalr.<locals>.<dictcomp>parserZ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   r8   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   
rF   c                   C   s
   t t_d S )N)rF   r9   showwarningr%   r%   r%   r+   make_warnings_commentsE   s   
rH   )NN)#r;   argparser   r   textwrapr   loggingr   r   r   r   typingr	   r9   Zlarkr
   r   Zinteregularr2   r1   ImportErrorZlalr_argparserflagsr5   add_argumentstdoutflag
isinstancetupler   strNotImplementedErrorr8   rF   rH   r%   r%   r%   r+   <module>   s@    	
"



