From e377ddb5cab8702eb2a52d68147797d3fe372473 Mon Sep 17 00:00:00 2001 From: Lev135 Date: Wed, 9 Mar 2022 22:35:50 +0300 Subject: [PATCH] Main function realized --- LaTeX-generator.cabal | 2 +- README.md | 8 +++++++- src/Main.hs | 20 +++++++------------- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/LaTeX-generator.cabal b/LaTeX-generator.cabal index 5cf8f32..2667b27 100644 --- a/LaTeX-generator.cabal +++ b/LaTeX-generator.cabal @@ -50,7 +50,7 @@ category: Math extra-source-files: README.md -executable LaTeX-generator +executable texgen -- .hs or .lhs file containing the Main module. main-is: Main.hs diff --git a/README.md b/README.md index 6672e55..89bb0fa 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,10 @@ -Для тестового запуска трансляции выполните: +Для запуска скомпилированного файла выполните: +``` + cabal new-update + cabal new-run texgen -- examples/nibergall.ttex examples/nibergall.tex +``` + +Для запуска трансляции из интерпретатора выполните: ``` cabal new-update cabal new-repl diff --git a/src/Main.hs b/src/Main.hs index 66535df..cf9f52c 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -3,6 +3,7 @@ module Main where import Generator import Data.Text(Text, pack, unpack) import Text.Megaparsec (parse, errorBundlePretty, MonadParsec (eof), mkPos, Pos) +import System.Environment (getArgs) parsePart :: Parser a -> Text -> Either String a parsePart p s = case parse p "" s of @@ -26,16 +27,9 @@ processFile inpFile outpFile = do Left e -> putStrLn e Right (defs, r) -> writeFile outpFile (unpack $ texDoc defs r) - -printErr :: Show a => Either String a -> IO () -printErr (Left e) = putStrLn e -printErr (Right v) = print v - -test :: Show a => (Definitions -> Pos -> Parser a) -> Int -> Text -> IO () -test p n str= do - inp <- pack <$> readFile "tests/defs2.ttex" - case parseAll pDefinitionBlock inp of - Left e -> putStrLn e - Right des -> printErr $ parseAll (p (processDefs des) (mkPos n)) str - -main = putStrLn "Hello, world!" +main :: IO () +main = do + args <- getArgs + case args of + [inpF, outpF] -> processFile inpF outpF + _ -> putStrLn "Incorrect number of arguments. Usage: texgen "