Я написал код парсека, который отлично работает для того, что я хочу. Он анализирует, как и ожидалось, следующий файл:
4,5
6,7
Соответствующий код выглядит так:
import Text.ParserCombinators.Parsec
import Control.Applicative hiding ((<|>))
import Control.Monad
data Test = Test Integer Integer deriving Show
integer :: Parser Integer
integer = rd <$> many1 digit
where rd = read :: String -> Integer
testParser :: Parser Test
testParser = do
a <- integer
char ','
b <- integer
return $ Test a b
testParserFile = endBy testParser eol
eol :: Parser Char
eol = char '\n'
main = do
a <- parseFromFile testParserFile "./jack.txt"
print a
Но мои настоящие файлы такие:
col 1,col 2
4,5
6,7
Есть ли способ сделать вышеуказанный парсер, просто пропустив первую строку?
many
не-\n
, потом\n
, потом иди своей дорогой - person luqui   schedule 27.03.2014