On 3/28/08, Paul Keir <[EMAIL PROTECTED]> wrote: > What I'd like is to parse either the string "parameter", or the string ":". > I'm using 'reserved' and 'symbol' because they seem to correspond well to > the concepts in the language I'm parsing. I could try, > > tester3 = reserved "parameter" <|> do { symbol ":"; return () }
Actually this is exactly on the right track. But I agree, it looks a bit contrived. Maybe this looks better to you? > tester3 = reserved "parameter" <|> (symbol ":" >> return ()) Or you could factor this behavior out into a new combinator: > or_ :: Parser a -> Parser b -> Parser () > or_ x y = (x >> return ()) <|> (y >> return ()) > tester3 = reserved "parameter" `or_` symbol ":" -- ryan _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe