{-
Utils
-}
module Utils where
import Data.List
import Data.Function
import Data.Maybe
import qualified Text.ParserCombinators.Parsec as P
split :: Char -> String -> [String]
split dlmt = filter ( not . any ((==) dlmt)). groupBy (on (==) ((==) dlmt))
selector :: Eq a => [a] -> [a] -> [Int]
selector source picks = (catMaybes [elemIndex x source | x <- picks])
object :: P.Parser String
object = do
c <- P.letter
cs <- P.many (P.letter P.<|> P.digit)
return (c:cs)
P.<?> "object"
csv :: P.Parser [String]
csv = do
csv <- P.many (P.letter P.<|> P.digit P.<|> P.char ',')
return (split ',' csv)
P.<?> "columns"