Added a warnPC function (like diePC) for use with formatCode

This commit is contained in:
Neil Brown 2008-03-22 18:34:40 +00:00
parent ae142a94e1
commit 7f28d3dbe3
2 changed files with 10 additions and 2 deletions

View File

@ -17,7 +17,9 @@ with this program. If not, see <http://www.gnu.org/licenses/>.
-}
-- | Error handling and reporting.
module Errors (addPlainWarning, addWarning, checkJust, Die(..), dieInternal, dieIO, dieP, ErrorReport, showWarnings, Warn(..), WarningReport) where
module Errors (addPlainWarning, addWarning, checkJust, Die(..),
dieInternal, dieIO, dieP, ErrorReport,
showWarnings, Warn(..), WarningReport, warnP) where
import Control.Monad.Error
import Control.Monad.Trans
@ -45,6 +47,9 @@ type WarningReport = (Maybe Meta, String)
class Monad m => Warn m where
warnReport :: WarningReport -> m ()
warnP :: Warn m => Meta -> String -> m ()
warnP m s = warnReport (Just m,s)
--{{{ warnings
-- | Add a warning with no source position.
addPlainWarning :: Warn m => String -> m ()

View File

@ -31,7 +31,7 @@ import Data.Set (Set)
import qualified Data.Set as Set
import qualified AST as A
import Errors (Die, dieP, ErrorReport)
import Errors (Die, dieP, ErrorReport, Warn, warnP)
import Metadata
-- | Modes that Tock can run in.
@ -301,6 +301,9 @@ makeNonceVariable s m t nt am
diePC :: (CSMR m, Die m) => Meta -> m String -> m a
diePC m str = str >>= (dieP m)
warnPC :: (CSMR m, Warn m) => Meta -> m String -> m ()
warnPC m str = str >>= (warnP m)
--dieC :: (CSM m, Die m) => m String -> m a
--dieC str = str >>= die