diff options
Diffstat (limited to 'src/Thue/Parser.hs')
-rw-r--r-- | src/Thue/Parser.hs | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/Thue/Parser.hs b/src/Thue/Parser.hs index 2ee41ae..10e9334 100644 --- a/src/Thue/Parser.hs +++ b/src/Thue/Parser.hs @@ -3,7 +3,9 @@ module Thue.Parser ( ThueRule(..), ThueState, - parseThue + parseThue, + toThueState, + fromThueState ) where import Control.Applicative( some ) @@ -31,6 +33,16 @@ parseThue = parse thue "error" +toThueState :: String -> ThueState +toThueState = id + + + +fromThueState :: ThueState -> String +fromThueState = id + + + thue = do rs <- many rule @@ -58,7 +70,7 @@ initialState = do return (concat s) -ruleState = some ruleStateChar +ruleState = some ruleStateChar >>= return . toThueState ruleStateChar = noneOf "\n\r:" @@ -66,7 +78,7 @@ ruleStateChar = noneOf "\n\r:" <?> "state character" -state = many stateChar +state = many stateChar >>= return . toThueState stateChar = noneOf "\n\r" |