packages feed

ddc-tools-0.4.1.1: src/ddci-tetra/DDCI/Tetra/Command/ToCore.hs

module DDCI.Tetra.Command.ToCore
        (cmdToCore)
where
import DDCI.Tetra.State
import DDC.Interface.Source
import DDC.Driver.Stage
import DDC.Build.Pipeline   
import DDC.Base.Pretty
import qualified DDC.Driver.Config      as D


-- Convert Disciple Source Tetra text into Disciple Core Tetra.
cmdToCore :: State -> D.Config -> Source -> String -> IO ()
cmdToCore _state config source str
 = let  
        pmode   = D.prettyModeOfConfig $ D.configPretty config

        pipeLoad
         = pipeText (nameOfSource source) (lineStartOfSource source) str
         $ stageSourceTetraLoad config source
         [ PipeCoreOutput pmode SinkStdout ]

   in do
        errs    <- pipeLoad
        case errs of
         []     -> return ()
         es     -> putStrLn (renderIndent $ ppr es)