module Language.Haskell.Tools.Transform
( prepareAST
, placeComments, getNormalComments, getPragmaComments
, child, opt, optBefore, optAfter, list, indentedList, indentedListBefore, indentedListAfter, listSep
, listSepBefore, listSepAfter, listSepBeforeAfter, (<>)
, 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