o
    oh                     @   s<   d Z ddlmZ ddlmZmZ ddl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OrNc                 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   )sclauseslinespCommentpStatslinemnumslistlitnumsign r   p/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/logic/utilities/dimacs.pyload   s6   





r    c                 C   s>   t | }| }W d   t|S 1 sw   Y  t|S )z'Loads a boolean expression from a file.N)openreadr    )locationfr   r   r   r   	load_fileA   s   


r%   )	__doc__
sympy.corer   sympy.logic.boolalgr   r   r	   r    r%   r   r   r   r   <module>   s    5