-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Structure Editing Combinators -- -- Build a structure editor for a programming language from combinators -- following the grammar. @package treersec @version 1 module Treersec data PP a PP :: Int -> [(Int, Widget GraphicTree a)] -> PP a pp_fromWidget :: Widget GraphicTree a -> PP a pp_above :: PP a -> PP a -> PP a pp_beside :: PP a -> PP a -> PP a pp_alts :: PP a -> PP a -> PP a pp_out :: Int -> PP t -> Widget GraphicTree t straightList :: Foldable t => t (PP a) -> PP a type Printer a = [PP a] -> [PP a] data Grammar a Alts :: [([Grammar a], Printer a)] -> Grammar a Term :: (String -> [String]) -> Grammar a At :: Int -> Grammar a llength :: [a] -> Int gfix :: ((Int -> Grammar a) -> Int -> Grammar a) -> (Int -> Grammar a) term :: (String -> [String]) -> Int -> Grammar a alts :: [([Int -> Grammar a], Printer a)] -> Int -> Grammar a data Node Placeholder :: Node Branch :: Int -> [Node] -> Node Leaf :: String -> Node data LinearNode LPlaceholder :: LinearNode LBranch :: Int -> LinearNode LLeaf :: String -> LinearNode data GrammarZ a GrammarZ :: (Grammar a) -> [(Grammar a, (Int, Int))] -> [(Int, Int)] -> GrammarZ a gzChildren :: GrammarZ a -> [[GrammarZ a]] gzInject :: Grammar a -> GrammarZ a gzCoords :: GrammarZ t -> [(Int, Int)] lastCoords :: Node -> [(Int, Int)] -> [(Int, Int)] commonCoords :: Eq a => [a] -> [a] -> [a] getSelection :: GrammarZ a -> Node -> [(Int, Int)] -> [(Int, Int)] -> [[(Int, Int)]] subCoords :: GrammarZ a -> GrammarZ a -> Node -> [(Int, Int)] -> [(t1, Int)] -> [(t, Int)] -> Maybe [(Int, Int)] type PreOrder a = [(LinearNode, GrammarZ a)] getNode :: Node -> [(Int, Int)] -> Node replaceNode :: GrammarZ a -> Node -> Maybe Node -> [(Int, Int)] -> Node flattenNode :: GrammarZ a -> Node -> PreOrder a splitNodeAfter :: GrammarZ a -> Node -> [(Int, Int)] -> ([(LinearNode, GrammarZ a)], [(LinearNode, GrammarZ a)]) splitNodeAt :: GrammarZ a -> Node -> [(Int, Int)] -> ([(LinearNode, GrammarZ a)], [(LinearNode, GrammarZ a)]) parsePreOrder :: PreOrder a -> Node preOrderZipUp :: ([(LinearNode, GrammarZ a)], [(LinearNode, GrammarZ a)]) -> Node cursorBack' :: GrammarZ t -> Node -> [(Int, Int)] -> [(Int, Int)] cursorBack :: GrammarZ t -> Node -> [(Int, Int)] -> [(Int, Int)] preOrderBack :: (PreOrder a, PreOrder a) -> (PreOrder a, PreOrder a) preOrderCursor :: ([(t1, GrammarZ t)], t2) -> [(Int, Int)] nextTokens :: (PreOrder a, PreOrder a) -> [(PreOrder a, PreOrder a)] recursiveOptions :: GrammarZ a -> [[(LinearNode, GrammarZ a)]] emptyOrPlaceholder :: GrammarZ a -> (LinearNode, GrammarZ a) pp_besides :: [PP a] -> [PP a] pp_straightList :: [PP a] -> [PP a] data PPList a PPList :: [PP a] -> PPList a concatPPList :: PPList a -> PPList a -> PPList a renderNode :: (Enum t2, Num t2, Eq t2) => Bool -> [[(t3, t2)]] -> ([(Int, t2)] -> String -> Bool -> PPList t1) -> ([(Int, t2)] -> Bool -> PPList t1) -> Maybe ([(t, t2)], PPList t1) -> GrammarZ t1 -> Node -> Widget GraphicTree t1 edit :: (forall a. GrammarZ a) -> Node -> Widget GraphicTree z codeTS :: TextStyle str :: [Char] -> Int -> Grammar a tok_str :: Int -> Grammar a tok_num :: Int -> Grammar a aList :: Grammar a json :: Grammar a sepListNE :: (Int -> Grammar a) -> (Int -> Grammar a) -> Int -> Grammar a widgetMain :: IO () instance GHC.Show.Show Treersec.LinearNode instance GHC.Show.Show Treersec.Node instance GHC.Base.Functor Treersec.PP instance GHC.Classes.Eq (Treersec.GrammarZ a) instance GHC.Base.Functor Treersec.PPList