forked from GitHub/gf-core
Switch to new options handling.
This changes lots of stuff, let me know if it broke anything. Comments: - We use a local hacked version of GetOpt that allows long forms of commands to start with a single dash. This breaks other parts of GetOpt. For example, arguments to short options now require a =, and does not allo pace after the option character. - The new command parsing is currently only used for the program command line, pragmas and the arguments for the 'i' shell command. - I made a quick hack for the options for showTerm, which currently makes it impossible to use the print style flags for cc. This will be replaced by a facility for parsing command-specific options. - The verbosity handling is broken in some places. I will fix that in a later patch.
This commit is contained in:
@@ -5,7 +5,8 @@ module GF.Grammar.API (
|
||||
prTerm,
|
||||
checkTerm,
|
||||
computeTerm,
|
||||
showTerm
|
||||
showTerm,
|
||||
TermPrintStyle(..)
|
||||
) where
|
||||
|
||||
import GF.Source.ParGF
|
||||
@@ -52,9 +53,15 @@ checkTermAny gr m t = do
|
||||
computeTerm :: Grammar -> Term -> Err Term
|
||||
computeTerm = computeConcrete
|
||||
|
||||
showTerm :: Options -> Term -> String
|
||||
showTerm opts t
|
||||
| oElem (iOpt "table") opts = unlines [p +++ s | (p,s) <- prTermTabular t]
|
||||
| oElem (iOpt "all") opts = unlines [ s | (p,s) <- prTermTabular t]
|
||||
| oElem (iOpt "unqual") opts = prt_ t
|
||||
| otherwise = prt t
|
||||
showTerm :: TermPrintStyle -> Term -> String
|
||||
showTerm style t =
|
||||
case style of
|
||||
TermPrintTable -> unlines [p +++ s | (p,s) <- prTermTabular t]
|
||||
TermPrintAll -> unlines [ s | (p,s) <- prTermTabular t]
|
||||
TermPrintUnqual -> prt_ t
|
||||
TermPrintDefault -> prt t
|
||||
|
||||
|
||||
data TermPrintStyle = TermPrintTable | TermPrintAll | TermPrintUnqual | TermPrintDefault
|
||||
deriving (Show,Eq)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user