axel-0.0.11: src/Axel/Haskell/Macros.hs
module Axel.Haskell.Macros where
import qualified Prelude as GHCPrelude
import qualified Axel.Parse.AST as AST
import Axel.Prelude
import Axel.Haskell.Language(haskellOperatorSymbols,haskellSyntaxSymbols,isOperator)
import qualified Axel.Parse as Parse(syntaxSymbols)
import Data.List(foldl')
import Data.MonoTraversable(onotElem)
import qualified Data.Text as T
hygenisizeMacroName oldName = (let {suffix = if (isOperator oldName) then "%%%%%%%%%%" else "_AXEL_AUTOGENERATED_MACRO_DEFINITION";suffixedName = if (T.isSuffixOf suffix oldName) then oldName else ((<>) oldName suffix);symbolReplacementMap = if (isOperator oldName) then haskellSyntaxSymbols else ((<>) haskellSyntaxSymbols haskellOperatorSymbols)} in (foldl' (\acc ((,) old new) -> (T.replace (T.singleton old) new acc)) suffixedName (filter (\((,) sym _) -> (onotElem sym Parse.syntaxSymbols)) symbolReplacementMap)))
hygenisizeMacroName :: ((->) Text Text)