1 {-# LANGUAGE AllowAmbiguousTypes #-}
2 {-# LANGUAGE OverloadedStrings #-}
3 {-# LANGUAGE NoMonomorphismRestriction #-}
4 {-# LANGUAGE TypeApplications #-}
5 {-# LANGUAGE NamedFieldPuns #-}
6 {-# OPTIONS_GHC -Wno-missing-signatures #-}
7 module Textphile.CLI where
9 import Control.Monad (Monad(..))
11 import Data.Function (($))
12 import Data.Semigroup (Semigroup(..))
13 import Data.Text (Text)
14 import Data.Void (Void)
15 import Symantic.CLI as CLI
16 import qualified Data.Text.Lazy.IO as TL
17 import qualified Symantic.Document as Doc
18 import qualified Symantic.RNC.Write as RNC
19 import qualified System.IO as IO
20 import qualified Textphile.DTC.Sym as DTC
22 import Textphile.CLI.Lang
23 import Textphile.CLI.Utils
24 import Textphile.CLI.Compile
25 import Textphile.CLI.Source
27 parseAPI = parser @Void @Doc api run
41 api_command_compile <!>
42 api_command_source <!>
45 run_command_compile opts :!:
46 run_command_source opts :!:
50 helps l10n_help_version $
51 tag (TagLong "version") nothing
54 return (Doc.from version <> Doc.newline)
57 helps l10n_help_command_schema $
61 TL.hPutStrLn IO.stdout $
62 RNC.writeRNC DTC.schema DTC.schema