diff options
| author | aarne <aarne@cs.chalmers.se> | 2006-09-17 14:57:46 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2006-09-17 14:57:46 +0000 |
| commit | 1242b8cc91f2ba3b9860cf34b36d0a5bbcea1b1a (patch) | |
| tree | 9ff97a1330b86f180f0e6beedcacd699fe4f428a /src/GF | |
| parent | 35f81967eab677ed4a8f58fef27f4945f684ee8b (diff) | |
predef types in gfcc
Diffstat (limited to 'src/GF')
| -rw-r--r-- | src/GF/Canon/CanonToGFCC.hs | 4 | ||||
| -rw-r--r-- | src/GF/Canon/GFCC/GenGFCC.hs | 5 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/GF/Canon/CanonToGFCC.hs b/src/GF/Canon/CanonToGFCC.hs index bfcae3cf3..f7fc3f18f 100644 --- a/src/GF/Canon/CanonToGFCC.hs +++ b/src/GF/Canon/CanonToGFCC.hs @@ -177,7 +177,9 @@ paramValues cgr = (labels,untyps,typs) where jments = [(m,j) | (m,mo) <- M.allModMod cgr, j <- tree2list $ M.jments mo] typs = Map.fromList [(ci,Map.fromList (zip vs [0..])) | (ci,vs) <- params] untyps = Map.fromList $ concatMap Map.toList [typ | (_,typ) <- Map.toList typs] - lincats = [(cat,ls) | (_,(cat,CncCat (RecType ls) _ _)) <- jments] + lincats = + [(IC cat,[Lbg (L (IC "s")) TStr]) | cat <- ["Int", "Float", "String"]] ++ + [(cat,ls) | (_,(cat,CncCat (RecType ls) _ _)) <- jments] labels = Map.fromList $ concat [((cat,[lab]),(typ,i)): [((cat,[lab2,lab]),(ty,j)) | diff --git a/src/GF/Canon/GFCC/GenGFCC.hs b/src/GF/Canon/GFCC/GenGFCC.hs index 533867d3f..15c5e71d7 100644 --- a/src/GF/Canon/GFCC/GenGFCC.hs +++ b/src/GF/Canon/GFCC/GenGFCC.hs @@ -39,13 +39,16 @@ generateRandom gen gfcc cat = genTrees (randomRs (0.0, 1.0) gen) cat where (genTrees ds2 cat) -- else (drop k ds) genTree rs = gett rs where + gett ds (CId "String") = (Tr (AS "foo") [], 1) + gett ds (CId "Int") = (Tr (AI 12345) [], 1) gett ds cat = case fns cat of fs -> let d:ds2 = ds (f,args) = getf d fs (ts,k) = getts ds2 args in (Tr (AC f) ts, k+1) - getf d fs = fs !! floor (d * fromIntegral (length fs)) + getf d fs = let lg = (length fs) in + fs !! (floor (d * fromIntegral lg)) getts ds cats = case cats of c:cs -> let (t, k) = gett ds c |
