From d88cdcc5217318b99e4766ab9cbdf300facecc08 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Wed, 12 Jun 2013 12:40:17 -0400 Subject: [PATCH] Wire in :-iaggr pragmas. --- src/Dyna/ParserHS/OneshotDriver.hs | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/Dyna/ParserHS/OneshotDriver.hs b/src/Dyna/ParserHS/OneshotDriver.hs index 49b01d6..4020541 100644 --- a/src/Dyna/ParserHS/OneshotDriver.hs +++ b/src/Dyna/ParserHS/OneshotDriver.hs @@ -127,6 +127,7 @@ defPCS = PCS { _pcs_dt_mk = "dyna" -- | Update the PCS to reflect a new pragma pcsProcPragma :: (Parsing m, MonadState PCS m) => Spanned Pragma -> m () + pcsProcPragma (PDispos s f as :~ _) = do pcs_dt_over %= dtoMerge (f,length as) (s,as) update_pcs_dt @@ -135,6 +136,9 @@ pcsProcPragma (PDisposDefl n :~ _) = do pcs_dt_mk .= n update_pcs_dt return () + +pcsProcPragma (PIAggr f n a :~ _) = pcs_iagg_map . at (f,n) .= Just a + pcsProcPragma (PInst (PNWA n as) i :~ s) = do im <- use pcs_instmap maybe (pcs_instmap %= M.insert n (as,i,s)) @@ -157,10 +161,13 @@ pcsProcPragma (PMode (PNWA n as) pmf pmt :~ s) = do $ M.lookup n mm pcsProcPragma (PRuleIx r :~ _) = pcs_ruleix .= r -pcsProcPragma (p :~ s) = dynacSorry $ "Cannot handle pragma" - PP. (PP.text $ show p) - PP. "at" - PP. prettySpanLoc s +pcsProcPragma (p@(POperAdd _ _ _) :~ s) = sorryPragma p s +pcsProcPragma (p@(POperDel _) :~ s) = sorryPragma p s + +sorryPragma p s = dynacSorry $ "Cannot handle pragma" + PP. (PP.text $ show p) + PP. "at" + PP. prettySpanLoc s pragmasFromPCS :: PCS -> PP.Doc e pragmasFromPCS (PCS dt_mk dt_over _ -- 2.50.1