通常、コマンドラインの解析には、getOpt を使うのだろう。
しかし、getOpt は、1文字オプションではなく
HOGE -DEBUG -DL FILE
といった文字列オプションに対しては使えない。
文字列オプションを解析するのに Text.Parsec.Perm は使えないだろうか。
Parsec の利用は、次のようなことが問題になる。
パーサの型を Parsec String u a とした場合、getArgs の戻り値はそのままでは渡せない。
しかし、getArgs の戻り値を unwords でひとつの文字列としてしまうと、
空白の混在したオプション引数を解析できなくなる。
module Main where import System.Environment main :: IO() main = do args <- getArgs putStrLn (unwords args)
Parsec を使ってコマンドライン解析をやるなら、Parsec [String] u a なるパーサーが必要か。
module Main where import System.Environment main :: IO() main = getArgs >>= print