Skip to content

Commit

Permalink
generalize type of parseLPString and parseMPSString
Browse files Browse the repository at this point in the history
  • Loading branch information
msakai committed Nov 7, 2020
1 parent ecc206f commit 527e9f2
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions MIP/src/Numeric/Optimization/MIP.hs
@@ -1,7 +1,9 @@
{-# OPTIONS_GHC -Wall #-}
{-# OPTIONS_HADDOCK show-extensions #-}
{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TypeFamilies #-}
-----------------------------------------------------------------------------
-- |
-- Module : Numeric.Optimization.MIP
Expand Down Expand Up @@ -43,10 +45,12 @@ import Prelude hiding (readFile, writeFile)
import Control.Exception
import Data.Char
import Data.Scientific (Scientific)
import Data.String
import qualified Data.Text.Lazy as TL
import qualified Data.Text.Lazy.IO as TLIO
import System.FilePath (takeExtension, splitExtension)
import System.IO hiding (readFile, writeFile)
import Text.Megaparsec (Stream (..))

import Numeric.Optimization.MIP.Base
import Numeric.Optimization.MIP.FileUtils (ParseError)
Expand Down Expand Up @@ -114,11 +118,19 @@ readTextFile opt fname = do
#endif

-- | Parse a string containing LP file data.
parseLPString :: FileOptions -> String -> String -> Either (ParseError String) (Problem Scientific)
#if MIN_VERSION_megaparsec(6,0,0)
parseLPString :: (Stream s, Token s ~ Char, IsString (Tokens s)) => FileOptions -> String -> s -> Either (ParseError s) (Problem Scientific)
#else
parseLPString :: (Stream s, Token s ~ Char) => FileOptions -> String -> s -> Either (ParseError s) (Problem Scientific)
#endif
parseLPString = LPFile.parseString

-- | Parse a string containing MPS file data.
parseMPSString :: FileOptions -> String -> String -> Either (ParseError String) (Problem Scientific)
#if MIN_VERSION_megaparsec(6,0,0)
parseMPSString :: (Stream s, Token s ~ Char, IsString (Tokens s)) => FileOptions -> String -> s -> Either (ParseError s) (Problem Scientific)
#else
parseMPSString :: (Stream s, Token s ~ Char) => FileOptions -> String -> s -> Either (ParseError s) (Problem Scientific)
#endif
parseMPSString = MPSFile.parseString

-- | Generate LP file or MPS file based on file extension.
Expand Down

0 comments on commit 527e9f2

Please sign in to comment.