Hallo,

On 10/2/07, Brandon S. Allbery KF8NH <[EMAIL PROTECTED]> wrote:
>
> Sorry, just woke up and still not quite tracking right, so I modified
> the wrong snippet of code.  The trick is to wrap parseLeftList in a
> try, so the parser retries the next alternative when it fails.
>

     Since "..." can only appear at the end of a list, I removed "..."
from the possible symbols and added a new function:

parseThreeDottedList :: [SchDatum] -> Parser SchDatum
parseThreeDottedList ls = do
  string "..."
  many parseAtmosphere
  char ')'
  return $ SchList $ ls ++ [SchSymbol "..."]

parseList :: Parser SchDatum
parseList = do
  ls <- parseLeftList
  try (parseThreeDottedList ls) <|> (parseDottedList ls) <|>
(parseProperList ls)

     Thanks for the help.

Cheers,
-- 
-alex
http://www.ventonegro.org/
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to