diff --git a/RainParse.hs b/RainParse.hs index 9e5a31c..25e8e40 100644 --- a/RainParse.hs +++ b/RainParse.hs @@ -1,7 +1,6 @@ module RainParse where import qualified Text.ParserCombinators.Parsec.Token as P -import Parse (tryXV) @@ -32,26 +31,12 @@ import Metadata import Pass import Types import Utils +import qualified Parse ---Dummy: -type RainState = Int - -type RainParser = GenParser Char RainState - - -emptyState:: RainState -emptyState = 0 - -{- -instance MonadState st (GenParser tok st) where - get = getState - put = setState - -instance Die (GenParser tok st) where - die = fail --} +type RainState = CompState +type RainParser = Parse.OccParser rainStyle = emptyDef diff --git a/RainParseTest.hs b/RainParseTest.hs index 6c34a7e..0cf0a58 100644 --- a/RainParseTest.hs +++ b/RainParseTest.hs @@ -7,6 +7,7 @@ import Test.HUnit import Metadata (Meta,emptyMeta) import Prelude hiding (fail) import TestUtil +import CompState data ParseTest a = Show a => ExpPass (String, RP.RainParser a , (a -> Assertion)) | ExpFail (String, RP.RainParser a) @@ -20,7 +21,7 @@ fail x = ExpFail x --Runs a parse test, given a tuple of: (source text, parser function, assert) testParsePass :: Show a => (String, RP.RainParser a , (a -> Assertion)) -> Assertion testParsePass (text,prod,test) - = case (runParser parser RP.emptyState "" text) of + = case (runParser parser emptyState "" text) of Left error -> assertString (show error) Right result -> ((return result) >>= test) where parser = do { p <- prod ; eof ; return p} @@ -30,7 +31,7 @@ testParsePass (text,prod,test) testParseFail :: Show a => (String, RP.RainParser a) -> Assertion testParseFail (text,prod) - = case (runParser parser RP.emptyState "" text) of + = case (runParser parser emptyState "" text) of Left error -> return () Right result -> assertFailure ("Test was expected to fail:\n***BEGIN CODE***\n" ++ text ++ "\n*** END CODE ***\n") where parser = do { p <- prod ; eof ; return p}