U
    ZÊ¹jô  ã                   @   s    d dl Z d dlZd dlZd dlmZ d dlmZmZmZ d dl	m
Z
 e
dƒZedkZe j e j e¡d¡ZdZdZdd	d
„Zdd„ ZG dd„ deƒZdd„ ZdS )é    N)Úraises)ÚLarkLaTeXParserÚTransformToSymPyExprÚparse_latex_lark)Úimport_moduleÚlarkz ../latex/lark/grammar/latex.larkzA
%override DIV_SYMBOL: DIV
%override MUL_SYMBOL: MUL | CMD_TIMES
z 
%override number: /\d+(,\d*)?/
c              	   C   s`   t tdd��}| ¡ }W 5 Q R X || 7 }t ¡ �&}| t|dd�¡ t|j|d�}W 5 Q R X |S )Nzutf-8)ÚencodingÚutf8)Úgrammar_fileÚtransformer)	Úopenr
   ÚreadÚtempfileÚNamedTemporaryFileÚwriteÚbytesr   Úname)Zmodificationr   ÚfZlatex_grammarÚparser© r   úd/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/parsing/tests/test_custom_latex.pyÚinit_custom_parser   s    
r   c               	   C   s8   t tƒ} ttjjƒ� |  d¡ |  d¡ W 5 Q R X d S )Nz	a \cdot bzx \div y)r   Úmodification1r   r   Ú
exceptionsÚUnexpectedCharactersÚdoparse©r   r   r   r   Útest_custom1&   s    
r   c                   @   s   e Zd Zdd„ ZdS )ÚCustomTransformerc                 C   s<   d|d kr&t jj |d  dd¡¡S t jj |d ¡S d S )Nú,r   Ú.)ÚsympyÚcoreÚnumbersÚFloatÚreplaceÚInteger)ÚselfÚtokensr   r   r   Únumber0   s    zCustomTransformer.numberN)Ú__name__Ú
__module__Ú__qualname__r)   r   r   r   r   r   /   s   r   c               	   C   s^   t ttƒ} ttjjƒ� tdƒ tdƒ W 5 Q R X |  d¡ |  d¡ |  d¡ |  d¡ d S )Nz100,1z0,009z2,71828z3,14159)	r   Úmodification2r   r   r   r   r   r   r   r   r   r   r   Útest_custom27   s    



r.   )N)Úosr   r!   Zsympy.testing.pytestr   Zsympy.parsing.latex.larkr   r   r   Zsympy.externalr   r   ÚdisabledÚpathÚjoinÚdirnameÚ__file__r
   r   r-   r   r   r   r.   r   r   r   r   Ú<module>   s   
	