Earley-0.10.0: examples/VeryAmbiguous.hs
{-# LANGUAGE RecursiveDo #-}
import Control.Applicative
import System.Environment
import Text.Earley
g :: Grammar r (Prod r Char Char ())
g = mdo
s <- rule $ () <$ symbol 'b'
<|> () <$ s <* s
<|> () <$ s <* s <* s
<?> 's'
return s
main :: IO ()
main = do
xs:_ <- getArgs
print $ report (parser g) xs