Я пытаюсь написать парсер на 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"
где запятаяSep определяется как
commaSep = skipMany1 (space <|> char ',')
Теперь есть ли у меня способ разобрать подобное утверждение, в частности:
test x [1...3] end
Будучи новичком в Haskell и Parsec в этом отношении, я уверен, что есть какой-то хороший лаконичный способ сделать это, о котором я просто не знаю. Любая помощь будет оценена по достоинству.
Спасибо еще раз.