diff options
| author | aarne <aarne@cs.chalmers.se> | 2007-10-02 13:44:52 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2007-10-02 13:44:52 +0000 |
| commit | 8fc4f7b1fd5bef71c1833af63e6e283249f011db (patch) | |
| tree | d2c5e0fcc70414076052e8294f78fac167ac0883 /src/GF/Devel | |
| parent | dabf5d1ee0145b9664f36e25d6c43b817f5367fc (diff) | |
more debugging of GrammarToGFCC
Diffstat (limited to 'src/GF/Devel')
| -rw-r--r-- | src/GF/Devel/GrammarToGFCC.hs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/GF/Devel/GrammarToGFCC.hs b/src/GF/Devel/GrammarToGFCC.hs index 7d0c19b60..6a499b21f 100644 --- a/src/GF/Devel/GrammarToGFCC.hs +++ b/src/GF/Devel/GrammarToGFCC.hs @@ -7,6 +7,7 @@ import qualified GF.Canon.GFCC.AbsGFCC as C import qualified GF.Canon.GFCC.PrintGFCC as Pr import qualified GF.Grammar.Abstract as A import qualified GF.Grammar.Macros as GM +import qualified GF.Grammar.Compute as Compute import qualified GF.Infra.Modules as M import qualified GF.Infra.Option as O @@ -271,10 +272,10 @@ term2term cgr env@(labels,untyps,typs) tr = case tr of mkValCase tr = case appSTM (doVar tr) [] of Ok (tr', st@(_:_)) -> t2t $ comp $ foldr mkCase tr' st - _ -> valNum tr + _ -> valNum $ comp tr --- this is mainly needed for parameter record projections - comp t = t ----- $ Look.ccompute cgr [] t + comp t = errVal t $ Compute.computeTerm cgr [] t doVar :: Term -> STM [((Type,[Term]),(Term,Term))] Term doVar tr = case getLab tr of @@ -328,11 +329,11 @@ term2term cgr env@(labels,untyps,typs) tr = case tr of _ -> valNumFV $ tryVar tr _ -> valNumFV $ tryVar tr tryVar tr = case GM.appForm tr of - ---(c, ts) -> [ts' | ts' <- combinations (map tryVar ts)] + (c@(QC _ _), ts) -> [GM.mkApp c ts' | ts' <- combinations (map tryVar ts)] (FV ts,_) -> ts _ -> [tr] valNumFV ts = case ts of - [tr] -> EInt 66667 ----K (KS (A.prt tr +++ prtTrace tr "66667")) + [tr] -> K (A.prt tr ++ "66667") _ -> FV $ map valNum ts mkCurry trm = case trm of @@ -355,6 +356,15 @@ term2term cgr env@(labels,untyps,typs) tr = case tr of mkLab k = LIdent (("_" ++ show k)) +{- +{CommonScand.VI} ({CommonScand.VSupin} (table ({CommonScand.VType} ) { + CommonScand.VAct => {CommonScand.Act} ; + CommonScand.VPass => {CommonScand.Pass} ; + CommonScand.VRefl => {CommonScand.Act} +} ! {CommonScand.VAct} +-} + + -- remove lock fields; in fact, any empty records and record types unlock = filter notlock where notlock (l,(_, t)) = case t of --- need not look at l |
