Safe Haskell | None |
---|
Resolves indentation into explicit nesting using { }
- data LayEnv = LayEnv {}
- type LastNl = (Int, Int)
- type Position = Posn
- data ExToken
- data LEnv = LEnv [Int] (Maybe LastNl)
- getToken :: Monad m => ExToken -> ClaferT m Token
- layoutOpen :: String
- layoutClose :: String
- resolveLayout :: Monad m => [Token] -> ClaferT m [Token]
- resolve :: Monad m => LEnv -> [ExToken] -> ClaferT m [Token]
- indent :: Token
- dedent :: Token
- toToken :: ExToken -> [Token]
- isExTokenIn :: [String] -> ExToken -> Bool
- isNewLine :: Token -> Token -> Bool
- incrGlobal :: Monad m => Position -> Int -> Token -> ClaferT m Token
- tokenLookup :: String -> Maybe Int
- position :: Token -> Position
- line :: Token -> Int
- column :: Token -> Int
- isTokenIn :: [String] -> Token -> Bool
- isLayoutOpen :: Token -> Bool
- isBracketOpen :: Token -> Bool
- isLayoutClose :: Token -> Bool
- isBracketClose :: Token -> Bool
- tokenLength :: Token -> Int
- addNewLines :: Monad m => [Token] -> ClaferT m [ExToken]
- addNewLines' :: Monad m => Int -> [Token] -> ClaferT m [ExToken]
- adjust :: Monad m => [Token] -> ClaferT m [Token]
- updToken :: Monad m => [Token] -> ClaferT m [Token]
- addToken :: Monad m => Position -> String -> [Token] -> ClaferT m [Token]
- resLayout :: String -> String
- resolveLayout' :: StateT LayEnv Identity ()
- handleIndent :: Char -> StateT LayEnv Identity Char
- emit :: MonadState LayEnv m => Char -> m ()
- readC :: (Num a, Ord a) => a -> StateT LayEnv Identity Char
- eatSpaces :: StateT LayEnv Identity Int
- emitIndent :: MonadState LayEnv m => Int -> m ()
- emitDedent :: MonadState LayEnv m => Int -> m ()
- isEof :: StateT LayEnv Identity Bool
- getc :: StateT LayEnv Identity Char
- revertLayout :: String -> String
- revertLayout' :: [String] -> Int -> [String]
Documentation
Show LayEnv |
layoutOpen :: StringSource
layoutClose :: StringSource
resolveLayout :: Monad m => [Token] -> ClaferT m [Token]Source
isExTokenIn :: [String] -> ExToken -> BoolSource
:: Monad m | |
=> Position | If the token is on the same line as this position, update the column position. |
-> Int | Number of characters to add to the position. |
-> Token | |
-> ClaferT m Token |
Add to the global and column positions of a token. | The column position is only changed if the token is on | the same line as the given position.
tokenLookup :: String -> Maybe IntSource
isLayoutOpen :: Token -> BoolSource
Check if a token is the layout open token.
isBracketOpen :: Token -> BoolSource
isLayoutClose :: Token -> BoolSource
Check if a token is the layout close token.
isBracketClose :: Token -> BoolSource
tokenLength :: Token -> IntSource
Get the number of characters in the token.
addNewLines :: Monad m => [Token] -> ClaferT m [ExToken]Source
addNewLines' :: Monad m => Int -> [Token] -> ClaferT m [ExToken]Source
:: Monad m | |
=> Position | Position of the new token. |
-> String | Symbol in the new token. |
-> [Token] | The rest of the tokens. These will have their positions updated to make room for the new token. |
-> ClaferT m [Token] |
Insert a new symbol token at the begninning of a list of tokens.
handleIndent :: Char -> StateT LayEnv Identity CharSource
emit :: MonadState LayEnv m => Char -> m ()Source
emitIndent :: MonadState LayEnv m => Int -> m ()Source
emitDedent :: MonadState LayEnv m => Int -> m ()Source
revertLayout :: String -> StringSource
revertLayout' :: [String] -> Int -> [String]Source