Fixed the parser again for extended rendezvous

This commit is contained in:
Neil Brown 2009-04-19 17:29:43 +00:00
parent cb4250b1b2
commit 13ce688271

View File

@ -2003,8 +2003,12 @@ alternative
guardedAlternative :: OccParser (A.Structured A.Alternative) guardedAlternative :: OccParser (A.Structured A.Alternative)
guardedAlternative guardedAlternative
= do m <- md = do m <- md
(makeAlt, alreadyIndented) <- guard (makeAlt, alreadyIndentedAfterExt) <- guard
when (not alreadyIndented) $ indent if alreadyIndentedAfterExt
-- There may or may not be a further process:
then (tryVX process outdent >>* (A.Only m . makeAlt))
<|> (outdent >> return (A.Only m $ makeAlt (A.Skip m)))
else do indent
p <- process p <- process
outdent outdent
return $ A.Only m (makeAlt p) return $ A.Only m (makeAlt p)