module Control.Compilation.String
where
import Control.Compilation
indent :: Compilation String ()
indent = Compilation $ \(State f i m n s) -> (State f (" " ++ i) m n s, ())
unindent :: Compilation String ()
unindent = Compilation $ \(State f i m n s) -> (State f (drop (min (length i) 2) i) m n s, ())
space :: Compilation String ()
space = Compilation $ \(State f i m n s) -> (State f i m n (s ++ " "), ())
spaces :: Int -> Compilation String ()
spaces k = Compilation $ \(State f i m n s) -> (State f i m n (s ++ (take k $ repeat ' ')), ())
newline :: Compilation String ()
newline = Compilation $ \(State f i m n s) -> (State f i m n (s ++ "\n" ++ i), ())
newlines :: Int -> Compilation String ()
newlines k = Compilation $ \(State f i m n s) -> (State f i m n (s ++ (take k $ repeat '\n') ++ i), ())
string :: String -> Compilation String ()
string s' = Compilation $ \(State f i m n s) -> (State f i m n (s ++ s'), ())
raw :: String -> Compilation String ()
raw = string
--eof