on master help sign in
Improved the parsing of `-XExtension` flags.

The `Read LanguageExt` instance is now used to convert strings into `LanguageExt`s, and passing -XNonexistentExtension results in an error instead of attempting to load the file "-XNonexistentExtension".

commitd0e193c94276b819a7698114623ad71101426f5a authorAlyssa Carter <trillionalyssa@gmail.com> dateSun 5 Jan 2014, 19:30 (13 years ago) parent7e2c212
1 file changed+5−2
src/Idris/REPL.hs+5−2
src/Idris/REPL.hs+5−2
@@ -1019,8 +1019,11 @@ parseArgs ("--dumpcases":n:ns) = DumpCases n : (parseArgs ns)
10191019parseArgs ("--codegen":n:ns) = UseCodegen (parseCodegen n) : (parseArgs ns)
10201020parseArgs ["--exec"] = InterpretScript "Main.main" : []
10211021parseArgs ("--exec":expr:ns) = InterpretScript expr : parseArgs ns
1022−parseArgs ("-XTypeProviders":ns) = Extension TypeProviders : (parseArgs ns)
1023−parseArgs ("-XErrorReflection":ns) = Extension ErrorReflection : (parseArgs ns)
1022+parseArgs (('-':'X':extName):ns) = case maybeRead extName of
1023+ Just ext -> Extension ext : parseArgs ns
1024+ -- Not sure what to do for the Nothing case
1025+ Nothing -> error ("Unknown extension " ++ extName)
1026+ where maybeRead = fmap fst . listToMaybe . reads
10241027parseArgs ("-O3":ns) = OptLevel 3 : parseArgs ns
10251028parseArgs ("-O2":ns) = OptLevel 2 : parseArgs ns
10261029parseArgs ("-O1":ns) = OptLevel 1 : parseArgs ns