summaryrefslogtreecommitdiff
path: root/src/GF/Devel
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2007-10-02 13:44:52 +0000
committeraarne <aarne@cs.chalmers.se>2007-10-02 13:44:52 +0000
commit8fc4f7b1fd5bef71c1833af63e6e283249f011db (patch)
treed2c5e0fcc70414076052e8294f78fac167ac0883 /src/GF/Devel
parentdabf5d1ee0145b9664f36e25d6c43b817f5367fc (diff)
more debugging of GrammarToGFCC
Diffstat (limited to 'src/GF/Devel')
-rw-r--r--src/GF/Devel/GrammarToGFCC.hs18
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