
    sg                     8    d Z ddlmZ ddlmZmZ ddlZd Zd Zy)z[For reading in DIMACS file format

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

    )Symbol)AndOrNc                    g }| j                  d      }t        j                  d      }t        j                  d      }t        |      dkD  r|j	                  d      }|j                  |      s|j                  |      }|s|j                  d      j                  d      }g }|D ]{  }	|	dk7  s	t        |	      dk(  rt        t        |	            }
d}t        |	      dk  rd}|r|j                  t        d	|
z               ^|j                  t        d	|
z                } t        |      dkD  r|j                  t        |        t        |      dkD  r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signs               O/var/www/html/venv/lib/python3.12/site-packages/sympy/logic/utilities/dimacs.pyloadr!      s6     GGGDMEzz&!HZZ23F
e*q.yy| ~~d#T"A{{4(..s3 ACbys8q=$!#c(m#s8a<#(D KKx#~(>? KK3)?(?@A t9q=NN2t9-3 e*q.6 =    c                     t        |       5 }|j                         }ddd       t        |      S # 1 sw Y   t              S xY w)z'Loads a boolean expression from a file.N)openreadr!   )locationfr   s      r    	load_filer(   A   s<    	h 1FFH 7N 7Ns	   0A)	__doc__
sympy.corer   sympy.logic.boolalgr   r   r   r!   r(    r"   r    <module>r-      s      ' 	2jr"   