diff options
| author | kr.angelov <kr.angelov@chalmers.se> | 2008-06-05 11:29:08 +0000 |
|---|---|---|
| committer | kr.angelov <kr.angelov@chalmers.se> | 2008-06-05 11:29:08 +0000 |
| commit | 11f24097b470122e2f3197bce3e6931701a68cc4 (patch) | |
| tree | 51d752fdb0b9d5e80fb890b16b0721a4d56a3df7 /src-3.0/GF/Command/Abstract.hs | |
| parent | f5fd3aa603bf736e47a6fdc6d9bf719ecef9d628 (diff) | |
complete word completion in the shell. works for commands, flags, options, abstract syntax identifiers and NL strings
Diffstat (limited to 'src-3.0/GF/Command/Abstract.hs')
| -rw-r--r-- | src-3.0/GF/Command/Abstract.hs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src-3.0/GF/Command/Abstract.hs b/src-3.0/GF/Command/Abstract.hs index 127cbf6e0..1f72688a0 100644 --- a/src-3.0/GF/Command/Abstract.hs +++ b/src-3.0/GF/Command/Abstract.hs @@ -26,3 +26,23 @@ data Argument = AExp Exp | ANoArg deriving (Eq,Ord,Show) + +valIdOpts :: String -> String -> [Option] -> String +valIdOpts flag def opts = case valOpts flag (VId def) opts of + VId v -> v + _ -> def + +valIntOpts :: String -> Integer -> [Option] -> Int +valIntOpts flag def opts = fromInteger $ case valOpts flag (VInt def) opts of + VInt v -> v + _ -> def + +valOpts :: String -> Value -> [Option] -> Value +valOpts flag def opts = case lookup flag flags of + Just v -> v + _ -> def + where + flags = [(f,v) | OFlag f v <- opts] + +isOpt :: String -> [Option] -> Bool +isOpt o opts = elem o [x | OOpt x <- opts] |
