haskell-token-utils-0.0.0.1: src/Language/Haskell/TokenUtils/Layout.hs
module Language.Haskell.TokenUtils.Layout
(
-- allocTokens
retrieveTokens
) where
import Control.Exception
import Data.Tree
import Language.Haskell.TokenUtils.Types
-- import Language.Haskell.TokenUtils.Utils
-- ---------------------------------------------------------------------
-- allocTokens = assert False undefined
-- ---------------------------------------------------------------------
retrieveTokens :: (IsToken a) => LayoutTree a -> [a]
retrieveTokens layout = go [] layout
where
-- go acc (Group _ _ xs) = acc ++ (concat $ map (go []) xs)
-- go acc (Leaf _ _ toks) = acc ++ toks
go acc (Node (Entry _ _ [] ) xs) = acc ++ (concat $ map (go []) xs)
go acc (Node (Entry _ _ toks) _) = acc ++ toks
go acc (Node (Deleted _ _ _) _) = acc
-- ---------------------------------------------------------------------