module DDC.Driver.Command.Parse (cmdParseModule) where import DDC.Interface.Source import DDC.Driver.Stage import Control.Monad.Trans.Error import Control.Monad.IO.Class import System.FilePath import qualified DDC.Core.Lexer as C cmdParseModule :: Config -> Source -> String -> ErrorT String IO () cmdParseModule config source str | SourceFile filePath <- source = case takeExtension filePath of ".dst" -> cmdParseModule_tetra config filePath str _ -> throwError "Unknown file extension." | otherwise = throwError "Cannot detect language." cmdParseModule_tetra _config sourcePathName str = do let tokens = C.lexModuleWithOffside sourcePathName 1 str liftIO $ putStrLn $ show tokens return ()