Haskell Parsec Parser для обнаружения […]

Я пытаюсь написать парсер на 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 в этом отношении, я уверен, что есть какой-то хороший лаконичный способ сделать это, о котором я просто не знаю. Любая помощь будет оценена по достоинству.

Спасибо еще раз.

6
задан Vincent Russo 17 July 2012 в 15:27
поделиться