@@ -28,7 +28,7 @@ runArgParser = do opts <- execParser $ info parser
2828 )
2929 return $ preProcOpts opts []
3030 where
31− idrisHeader = PP.hsep [PP.text "Idris version", PP.text ver, PP.text ", (C) The Idris Community 2014"]
31+ idrisHeader = PP.hsep [PP.text "Idris version", PP.text ver, PP.text ", (C) The Idris Community 2016"]
3232 idrisProgDesc = PP.vsep [PP.empty,
3333 PP.text "Idris is a general purpose pure functional programming language with dependent",
3434 PP.text "types. Dependent types allow types to be predicated on values, meaning that",
@@ -76,14 +76,15 @@ parser = runA $ proc () -> do
7676
7777parseFlags :: Parser [Opt]
7878parseFlags = many $
79− flag' NoBanner (long "nobanner" <> help "Suppress the banner")
80− <|> flag' Quiet (short 'q' <> long "quiet" <> help "Quiet verbosity")
79+ flag' NoBanner (long "nobanner" <> help "Suppress the banner")
80+ <|> flag' Quiet (short 'q' <> long "quiet" <> help "Quiet verbosity")
81+
8182 -- IDE Mode Specific Flags
82− <|> flag' Idemode (long "ide-mode" <> help "Run the Idris REPL with machine-readable syntax")
83+ <|> flag' Idemode (long "ide-mode" <> help "Run the Idris REPL with machine-readable syntax")
8384 <|> flag' IdemodeSocket (long "ide-mode-socket" <> help "Choose a socket for IDE mode to listen on")
84− <|> flag' Idemode (long "ideslave" <> help "Deprecated version of --ide-mode") -- TODO: Remove in v0.9.18
85− <|> flag' IdemodeSocket (long "ideslave-socket" <> help "Deprecated version of --ide-mode-socket") -- TODO: Remove in v0.9.18
85+
8686 <|> (Client <$> strOption (long "client"))
87+
8788 -- Logging Flags
8889 <|> (OLogging <$> option auto (long "log" <> metavar "LEVEL" <> help "Debugging log level"))
8990 <|> (OLogCats <$> option (str >>= parseLogCats)
@@ -91,71 +92,101 @@ parseFlags = many $
9192 <> metavar "CATS"
9293 <> help "Colon separated logging categories. Use --listlogcats to see list."))
9394
94− -- Turn off Certain libraries.
95+ -- Turn off things
9596 <|> flag' NoBasePkgs (long "nobasepkgs" <> help "Do not use the given base package")
96− <|> flag' NoPrelude (long "noprelude" <> help "Do not use the given prelude")
97+ <|> flag' NoPrelude (long "noprelude" <> help "Do not use the given prelude")
9798 <|> flag' NoBuiltins (long "nobuiltins" <> help "Do not use the builtin functions")
98− <|> flag' NoREPL (long "check" <> help "Typecheck only, don't start the REPL")
99+
100+ <|> flag' NoREPL (long "check" <> help "Typecheck only, don't start the REPL")
101+
99102 <|> (Output <$> strOption (short 'o' <> long "output" <> metavar "FILE" <> help "Specify output file"))
103+
100104 -- <|> flag' TypeCase (long "typecase")
101− <|> flag' Interface (long "interface" <> help "Generate interface files from ExportLists")
102− <|> flag' TypeInType (long "typeintype" <> help "Turn off Universe checking")
103− <|> flag' DefaultTotal (long "total" <> help "Require functions to be total by default")
105+ <|> flag' Interface (long "interface" <> help "Generate interface files from ExportLists")
106+ <|> flag' TypeInType (long "typeintype" <> help "Turn off Universe checking")
107+ <|> flag' DefaultTotal (long "total" <> help "Require functions to be total by default")
104108 <|> flag' DefaultPartial (long "partial")
105− <|> flag' WarnPartial (long "warnpartial" <> help "Warn about undeclared partial functions")
106− <|> flag' WarnReach (long "warnreach" <> help "Warn about reachable but inaccessible arguments")
107− <|> flag' NoCoverage (long "nocoverage")
108− <|> flag' ErrContext (long "errorcontext")
109+ <|> flag' WarnPartial (long "warnpartial" <> help "Warn about undeclared partial functions")
110+ <|> flag' WarnReach (long "warnreach" <> help "Warn about reachable but inaccessible arguments")
111+ <|> flag' NoCoverage (long "nocoverage")
112+ <|> flag' ErrContext (long "errorcontext")
113+
109114 -- Show things
110− <|> flag' ShowLoggingCats (long "listlogcats" <> help "Display logging categories")
111− <|> flag' ShowLibs (long "link" <> help "Display link flags")
112− <|> flag' ShowPkgs (long "listlibs" <> help "Display installed libraries")
113− <|> flag' ShowLibdir (long "libdir" <> help "Display library directory")
114− <|> flag' ShowIncs (long "include" <> help "Display the includes flags")
115− <|> flag' Verbose (short 'V' <> long "verbose" <> help "Loud verbosity")
115+ <|> flag' ShowLoggingCats (long "listlogcats" <> help "Display logging categories")
116+ <|> flag' ShowLibs (long "link" <> help "Display link flags")
117+ <|> flag' ShowPkgs (long "listlibs" <> help "Display installed libraries")
118+ <|> flag' ShowLibdir (long "libdir" <> help "Display library directory")
119+ <|> flag' ShowIncs (long "include" <> help "Display the includes flags")
120+
121+ <|> flag' Verbose (short 'V' <> long "verbose" <> help "Loud verbosity")
122+
116123 <|> (IBCSubDir <$> strOption (long "ibcsubdir" <> metavar "FILE" <> help "Write IBC files into sub directory"))
117124 <|> (ImportDir <$> strOption (short 'i' <> long "idrispath" <> help "Add directory to the list of import paths"))
125+
118126 <|> flag' WarnOnly (long "warn")
119− <|> (Pkg <$> strOption (short 'p' <> long "package" <> help "Add package as a dependency"))
127+
128+ <|> (Pkg <$> strOption (short 'p' <> long "package" <> help "Add package as a dependency"))
120129 <|> (Port <$> strOption (long "port" <> metavar "PORT" <> help "REPL TCP port"))
130+
121131 -- Package commands
122− <|> (PkgBuild <$> strOption (long "build" <> metavar "IPKG" <> help "Build package"))
123− <|> (PkgInstall <$> strOption (long "install" <> metavar "IPKG" <> help "Install package"))
124− <|> (PkgREPL <$> strOption (long "repl" <> metavar "IPKG" <> help "Launch REPL, only for executables"))
125− <|> (PkgClean <$> strOption (long "clean" <> metavar "IPKG" <> help "Clean package"))
126− <|> (PkgMkDoc <$> strOption (long "mkdoc" <> metavar "IPKG" <> help "Generate IdrisDoc for package"))
127− <|> (PkgCheck <$> strOption (long "checkpkg" <> metavar "IPKG" <> help "Check package only"))
128− <|> (PkgTest <$> strOption (long "testpkg" <> metavar "IPKG" <> help "Run tests for package"))
132+ <|> (PkgBuild <$> strOption (long "build" <> metavar "IPKG" <> help "Build package"))
133+ <|> (PkgInstall <$> strOption (long "install" <> metavar "IPKG" <> help "Install package"))
134+ <|> (PkgREPL <$> strOption (long "repl" <> metavar "IPKG" <> help "Launch REPL, only for executables"))
135+ <|> (PkgClean <$> strOption (long "clean" <> metavar "IPKG" <> help "Clean package"))
136+ <|> (PkgMkDoc <$> strOption (long "mkdoc" <> metavar "IPKG" <> help "Generate IdrisDoc for package"))
137+ <|> (PkgCheck <$> strOption (long "checkpkg" <> metavar "IPKG" <> help "Check package only"))
138+ <|> (PkgTest <$> strOption (long "testpkg" <> metavar "IPKG" <> help "Run tests for package"))
139+
129140 -- Misc options
130141 <|> (BCAsm <$> strOption (long "bytecode"))
131− <|> flag' (OutputTy Raw) (short 'S' <> long "codegenonly" <> help "Do no further compilation of code generator output")
132− <|> flag' (OutputTy Object) (short 'c' <> long "compileonly" <> help "Compile to object files rather than an executable")
133− <|> flag' (OutputTy MavenProject) (long "mvn" <> help "Create a maven project (for Java codegen)")
142+
143+ <|> flag' (OutputTy Raw) (short 'S' <> long "codegenonly" <> help "Do no further compilation of code generator output")
144+ <|> flag' (OutputTy Object) (short 'c' <> long "compileonly" <> help "Compile to object files rather than an executable")
145+ <|> flag' (OutputTy MavenProject) (long "mvn" <> help "Create a maven project (for Java codegen)")
146+
134147 <|> (DumpDefun <$> strOption (long "dumpdefuns"))
135148 <|> (DumpCases <$> strOption (long "dumpcases"))
136− <|> ((\s -> UseCodegen $ parseCodegen s) <$> strOption (long "codegen" <> metavar "TARGET" <> help "Select code generator: C, Javascript, Node and bytecode are bundled with Idris"))
137− <|> (CodegenArgs <$> strOption (long "cg-opt" <> metavar "ARG" <> help "Arguments to pass to code generator"))
149+
150+ <|> ((\s -> UseCodegen $ parseCodegen s) <$> strOption (long "codegen"
151+ <> metavar "TARGET"
152+ <> help "Select code generator: C, Javascript, Node and bytecode are bundled with Idris"))
153+ <|> (CodegenArgs <$> strOption (long "cg-opt"
154+ <> metavar "ARG"
155+ <> help "Arguments to pass to code generator"))
156+
138157 <|> (EvalExpr <$> strOption (long "eval" <> short 'e' <> metavar "EXPR" <> help "Evaluate an expression without loading the REPL"))
158+
139159 <|> flag' (InterpretScript "Main.main") (long "execute" <> help "Execute as idris")
140− <|> (InterpretScript <$> strOption (long "exec" <> metavar "EXPR" <> help "Execute as idris"))
141− <|> ((\s -> Extension $ getExt s) <$> strOption (long "extension" <> short 'X' <> metavar "EXT" <> help "Turn on language extension (TypeProviders or ErrorReflection)"))
160+ <|> (InterpretScript <$> strOption (long "exec" <> metavar "EXPR" <> help "Execute as idris"))
161+
162+ <|> ((\s -> Extension $ getExt s) <$> strOption (long "extension"
163+ <> short 'X'
164+ <> metavar "EXT"
165+ <> help "Turn on language extension (TypeProviders or ErrorReflection)"))
166+
142167 -- Optimisation Levels
143168 <|> flag' (OptLevel 3) (long "O3")
144169 <|> flag' (OptLevel 2) (long "O2")
145170 <|> flag' (OptLevel 1) (long "O1")
146171 <|> flag' (OptLevel 0) (long "O0")
172+
147173 <|> flag' (AddOpt PETransform) (long "partial-eval")
148174 <|> flag' (RemoveOpt PETransform) (long "no-partial-eval" <> help "Switch off partial evaluation, mainly for debugging purposes")
175+
149176 <|> (OptLevel <$> option auto (short 'O' <> long "level"))
177+
150178 <|> (TargetTriple <$> strOption (long "target" <> metavar "TRIPLE" <> help "Select target triple (for llvm codegen)"))
151− <|> (TargetCPU <$> strOption (long "cpu" <> metavar "CPU" <> help "Select target CPU e.g. corei7 or cortex-m3 (for LLVM codegen)"))
179+ <|> (TargetCPU <$> strOption (long "cpu" <> metavar "CPU" <> help "Select target CPU e.g. corei7 or cortex-m3 (for LLVM codegen)"))
180+
152181 -- Colour Options
153− <|> flag' (ColourREPL True) (long "colour" <> long "color" <> help "Force coloured output")
182+ <|> flag' (ColourREPL True) (long "colour" <> long "color" <> help "Force coloured output")
154183 <|> flag' (ColourREPL False) (long "nocolour" <> long "nocolor" <> help "Disable coloured output")
155184
156185 <|> (UseConsoleWidth <$> option (str >>= parseConsoleWidth) (long "consolewidth" <> metavar "WIDTH" <> help "Select console width: auto, infinite, nat"))
186+
157187 <|> flag' DumpHighlights (long "highlight" <> help "Emit source code highlighting")
158− <|> flag' NoElimDeprecationWarnings (long "no-elim-deprecation-warnings" <> help "Disable deprecation warnings for %elim")
188+
189+ <|> flag' NoElimDeprecationWarnings (long "no-elim-deprecation-warnings" <> help "Disable deprecation warnings for %elim")
159190 <|> flag' NoOldTacticDeprecationWarnings (long "no-tactic-deprecation-warnings" <> help "Disable deprecation warnings for the old tactic sublanguage")
160191
161192 where