From 562bf90aa4d9d2987c6bb132dbb99184e7e93b1e Mon Sep 17 00:00:00 2001 From: Andrea Rossato Date: Sun, 8 Jul 2007 12:01:48 +0200 Subject: better error handling when parsing weather information darcs-hash:20070708100148-d6583-a9f7983de441caeccc341c15a7029102e20eaa7b.gz --- Monitors/Common.hs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Monitors/Common.hs b/Monitors/Common.hs index e4c1562..8a51159 100644 --- a/Monitors/Common.hs +++ b/Monitors/Common.hs @@ -30,6 +30,8 @@ module Monitors.Common ( , getNumbers , getNumbersAsString , getAllBut + , getAfterString + , skipTillString , parseTemplate -- ** String Manipulation -- $strings @@ -207,6 +209,16 @@ skipRestOfLine = do many $ noneOf "\n\r" newline +getAfterString :: String -> Parser String +getAfterString s = + do { try $ manyTill skipRestOfLine $ string s + ; v <- manyTill anyChar $ newline + ; return v + } <|> return ("<" ++ s ++ " not found!>") + +skipTillString :: String -> Parser String +skipTillString s = + manyTill skipRestOfLine $ string s -- | Parses the output template string templateStringParser :: Parser (String,String,String) -- cgit v1.2.3