1
0
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:
bjorn
2008-05-28 15:10:36 +00:00
parent 1bc74749aa
commit 3fd1f5652a
21 changed files with 1028 additions and 588 deletions

View File

@@ -13,7 +13,10 @@ import qualified Data.Map as Map
-- suffix analysis followed by common subexpression elimination
optGFCC :: GFCC -> GFCC
optGFCC gfcc = gfcc {
optGFCC = cseOptimize . suffixOptimize
suffixOptimize :: GFCC -> GFCC
suffixOptimize gfcc = gfcc {
concretes = Map.map opt (concretes gfcc)
}
where
@@ -23,6 +26,11 @@ optGFCC gfcc = gfcc {
printnames = Map.map optTerm (printnames cnc)
}
cseOptimize :: GFCC -> GFCC
cseOptimize gfcc = gfcc {
concretes = Map.map subex (concretes gfcc)
}
-- analyse word form lists into prefix + suffixes
-- suffix sets can later be shared by subex elim