{-# LANGUAGE BangPatterns #-} {-# OPTIONS_GHC -Wall #-} ----------------------------------------------------------------------------- -- | -- Module : Data.PseudoBoolean -- Copyright : (c) Masahiro Sakai 2011-2015 -- License : BSD-style -- -- Maintainer : masahiro.sakai@gmail.com -- Portability : non-portable (BangPatterns) -- -- A library for parsing\/generating OPB\/WBO files used in pseudo boolean competition. -- -- References: -- -- * Input/Output Format and Solver Requirements for the Competitions of -- Pseudo-Boolean Solvers -- -- ----------------------------------------------------------------------------- module Data.PseudoBoolean ( -- * Abstract Syntax Formula (..) , Constraint , Op (..) , SoftFormula (..) , SoftConstraint , Sum , WeightedTerm , Term , Lit , Var -- * Parsing OPB files -- $ParsingOPB , parseOPBString , parseOPBByteString , parseOPBFile -- * Parsing WBO files -- $ParsingWBO , parseWBOString , parseWBOByteString , parseWBOFile -- * Generating OPB files , toOPBString , toOPBByteString , writeOPBFile , hPutOPB -- * Generating WBO files , toWBOString , toWBOByteString , writeWBOFile , hPutWBO ) where import Data.PseudoBoolean.Parsec import Data.PseudoBoolean.Types import Data.PseudoBoolean.Builder import Data.PseudoBoolean.ByteStringBuilder as ByteStringBuilder -- $ParsingOPB -- These functions are based on Parsec. -- If you want faster parser, you can also use "Data.PseudoBoolean.Attoparsec" module. -- $ParsingWBO -- These functions are based on Parsec. -- If you want faster parser, you can also use "Data.PseudoBoolean.Attoparsec" module.