module Language.Haskell.Tools.Transform
( prepareAST
, placeComments, getNormalComments, getPragmaComments
, child, opt, list, after, followedBy, relativeIndented, minimumIndented, separatedBy, indented, (<>)
, sourceTemplateNodeRange, sourceTemplateNodeElems
, sourceTemplateListRange, srcTmpListBefore, srcTmpListAfter, srcTmpDefaultSeparator, srcTmpIndented, srcTmpSeparators
, sourceTemplateOptRange, srcTmpOptBefore, srcTmpOptAfter
, rangeToSource, fixRanges, cutUpRanges, getLocIndices, mapLocIndices
) where
import Language.Haskell.Tools.Transform.RangeToRangeTemplate
import Language.Haskell.Tools.Transform.RangeTemplateToSourceTemplate
import Language.Haskell.Tools.Transform.RangeTemplate
import Language.Haskell.Tools.Transform.SourceTemplate
import Language.Haskell.Tools.Transform.SourceTemplateHelpers
import Language.Haskell.Tools.Transform.PlaceComments
import Language.Haskell.Tools.AST
import StringBuffer
prepareAST :: SourceInfoTraversal node => StringBuffer -> Ann node dom RangeStage -> Ann node dom SrcTemplateStage
prepareAST srcBuffer = rangeToSource srcBuffer . cutUpRanges . fixRanges