<div dir="ltr">-- trying to parse the text below using Parsec:<br><br>-- ACT I.<br><br>-- SCENE I. An open place.<br>-- [An open place. Thunder and lightning. Enter three Witches.]<br><br>--   FIRST WITCH.<br>--     When shall we three meet again<br>--     In thunder, lightning, or in rain?<br><br>-- Here's the code I have<br><br>import Text.Parsec<br>import Control.Applicative<br>import Data.Traversable (sequenceA)<br><br>section s = sequenceA [string s, string " ", many1 letter] `endBy` char '.'<br><br>act = section "ACT"<br>scene = section "SCENE"<br><br>main = do<br>  parseTest act "ACT I.\n"<br>  parseTest scene "SCENE I."<br><br>-- this returns:<br>-- λ> main<br>-- [["ACT"," ","I"]]<br>-- [["SCENE"," ","I"]]<br><br>-- Am I using Parsec correctly so far?<br>-- After this I want to match acts (many1 act) and scenes (many1 scene) and I believe I see how to do that, just wanting to make sure I'm on the right track.<br><br></div>