Я пытаюсь написать парсер на Haskell, используя Parsec. В настоящее время у меня есть программа, которая может разбирать
test x [1,2,3] end
Код, который это делает, выглядит следующим образом
testParser = do {
reserved "test";
v <- identifier;
symbol "[";
l <- sepBy natural commaSep;
symbol "]";
p <- pParser;
return $ Test v (List l) p
} <?> "end"
где commaSep определяется как
commaSep = skipMany1 (space <|> char ',')
Есть ли у меня способ разобрать подобное утверждение, а именно:
test x [1...3] end
Поскольку я новичок в Haskell и Parsec в этом отношении, я уверен, что есть хороший лаконичный способ сделать это, о котором я просто не знаю. Любая помощь будет оценена по достоинству.
Спасибо еще раз.
test x [1 , ,2, ,,3] end
; может быть, это не то, что вы хотите. - person dflemstr   schedule 17.07.2012