o
    i                     @   sH   d Z ddlmZ ddlmZmZ ddlZddlmZ dd Z	dd	 Z
dS )
z[For reading in DIMACS file format

www.cs.ubc.ca/~hoos/SATLIB/Benchmarks/SAT/satformat.ps

    )Symbol)AndOrN)Pathc                 C   s   g }|  d}td}td}t|dkr{|d}||su||}|su|d d}g }|D ]3}	|	dkrgt|	dkrAq4tt|	}
d}t|	dk rQd}|r]|	t
d	|
  q4|	t
d	|
   q4t|dkru|	t|  t|dkst| S )
a   Loads a boolean expression from a string.

    Examples
    ========

    >>> from sympy.logic.utilities.dimacs import load
    >>> load('1')
    cnf_1
    >>> load('1 2')
    cnf_1 | cnf_2
    >>> load('1 \n 2')
    cnf_1 & cnf_2
    >>> load('1 2 \n 3')
    cnf_3 & (cnf_1 | cnf_2)
    
zc.*zp\s*cnf\s*(\d*)\s*(\d*)r     TFzcnf_%s)splitrecompilelenpopmatchrstripintabsappendr   r   r   )sZclauseslinesZpCommentZpStatslinemnumslistZlitnumsign r   k/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/sympy/logic/utilities/dimacs.pyload   s6   





r   c                 C   s   t |  }t|S )z'Loads a boolean expression from a file.)r   	read_textr   )locationr   r   r   r   	load_fileB   s   r    )__doc__Z
sympy.corer   Zsympy.logic.boolalgr   r   r
   pathlibr   r   r    r   r   r   r   <module>   s    5