@@ -1,4 +1,4 @@
1−{-# LANGUAGE BangPatterns, FlexibleContexts #-}
1+{-# LANGUAGE BangPatterns, CPP, FlexibleContexts #-}
22
33module Main (main) where
44
@@ -6,13 +6,19 @@ import Control.Applicative
66import Control.Exception (bracket)
77import System.Environment (getArgs)
88import System.IO (hClose, openFile, IOMode(ReadMode))
9−import Text.Parsec.ByteString (Parser, parseFromFile)
109import Text.Parsec.Char (anyChar, char, satisfy, string)
1110import Text.Parsec.Combinator (many1, manyTill, skipMany1)
1211import Text.Parsec.Prim hiding (many, token, (<|>))
13−import qualified Data.ByteString as B
1412import qualified Data.IntSet as S
1513
14+#if 1
15+import Text.Parsec.ByteString.Lazy (Parser, parseFromFile)
16+import qualified Data.ByteString.Lazy as B
17+#else
18+import Text.Parsec.ByteString (Parser, parseFromFile)
19+import qualified Data.ByteString as B
20+#endif
21+
1622token :: Stream s m Char => ParsecT s u m Char
1723token = satisfy $ \c -> S.notMember (fromEnum c) set
1824 where set = S.fromList . map fromEnum $ ['\0'..'\31'] ++ "()<>@,;:\\\"/[]?={} \t" ++ ['\128'..'\255']