diff options
-rw-r--r-- | sil.icl | 20 |
1 files changed, 8 insertions, 12 deletions
@@ -113,24 +113,20 @@ Start w where arg :: Parser String (CLI -> CLI) arg = peek >>= \opt -> - ( item "--pretty-print" *> pure (\cli -> {cli & prettyprint=True}) - <|> item "--check" *> pure (\cli -> {cli & check=True}) - <|> item "--compile" *> pure (\cli -> {cli & compile=True}) - <|> item "--generate" *> pure (\cli -> {cli & generate=True}) - <|> item "--run" *> pure (\cli -> {cli & run=True}) - <|> (satisfy isFilename >>= \name -> pure (\cli -> {cli & inputfile=name})) + ( (\ cli -> {cli & prettyprint=True}) <$ item "--pretty-print" + <|> (\ cli -> {cli & check=True}) <$ item "--check" + <|> (\ cli -> {cli & compile=True}) <$ item "--compile" + <|> (\ cli -> {cli & generate=True}) <$ item "--generate" + <|> (\ cli -> {cli & run=True}) <$ item "--run" + <|> (\name cli -> {cli & inputfile=name}) <$> satisfy isFilename <?> P_Invalid "command line argument" opt ) isFilename :: (String -> Bool) isFilename = all (\c -> isAlphanum c || isMember c ['./-']) o fromString - finish :: !Int !*File !*File !*World -> *World - finish ret io err w - # (_,w) = fclose io w - # (_,w) = fclose err w - # w = setReturnCode ret w - = w + finish :: !Int !*File !*File -> *(*World -> *World) + finish ret io err = setReturnCode ret o snd o fclose err o snd o fclose io sleep :: !Int !*World -> *(!Int, !*World) sleep i w = code inline { |