diff options
| author | kr_angelov <kr_angelov@gmail.com> | 2007-01-11 19:16:36 +0000 |
|---|---|---|
| committer | kr_angelov <kr_angelov@gmail.com> | 2007-01-11 19:16:36 +0000 |
| commit | ccc248eb209d5b3e16ff11455a802335e3f1d01a (patch) | |
| tree | 7d5b08b6c5367520815e5d611ad6d1e5dba7e634 /src/GF/Conversion/SimpleToFCFG.hs | |
| parent | fad6869ffe0d74f19a18a44dfab1fd3637662e4e (diff) | |
fix aliases handling
Diffstat (limited to 'src/GF/Conversion/SimpleToFCFG.hs')
| -rw-r--r-- | src/GF/Conversion/SimpleToFCFG.hs | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/GF/Conversion/SimpleToFCFG.hs b/src/GF/Conversion/SimpleToFCFG.hs index 54f439a7e..402729341 100644 --- a/src/GF/Conversion/SimpleToFCFG.hs +++ b/src/GF/Conversion/SimpleToFCFG.hs @@ -137,7 +137,7 @@ convertTerm cnc_defs selector (KS str) ((lbl_path,lin) : lins) = do projectH return ((lbl_path,Tok str : lin) : lins) convertTerm cnc_defs selector (KP (str:_)_)((lbl_path,lin) : lins) = do projectHead lbl_path return ((lbl_path,Tok str : lin) : lins) -convertTerm cnc_defs selector (RP alias _) lins = convertTerm cnc_defs selector alias lins +convertTerm cnc_defs selector (RP _ term) lins = convertTerm cnc_defs selector term lins convertTerm cnc_defs selector (F id) lins = do term <- Map.lookup id cnc_defs convertTerm cnc_defs selector term lins convertTerm cnc_defs selector (W s ss) ((lbl_path,lin) : lins) = convertRec cnc_defs selector 0 [KS (s ++ s1) | s1 <- ss] lbl_path lin lins @@ -284,7 +284,7 @@ genFCatArg ctype env@(FRulesEnv last_id fcatSet rules) m1@(FCat _ cat rcs tcs) = gen_tcs :: Term -> FPath -> [(FPath,FIndex)] -> BacktrackM Bool [(FPath,FIndex)] gen_tcs (R record) path acc = foldM (\acc (label,ctype) -> gen_tcs ctype (label:path) acc) acc (zip [0..] record) gen_tcs (S _) path acc = return acc - gen_tcs (RP alias _) path acc = gen_tcs alias path acc + gen_tcs (RP _ term) path acc = gen_tcs term path acc gen_tcs (C max_index) path acc = case List.lookup path tcs of Just index -> return $! addConstraint path index acc @@ -340,7 +340,7 @@ mkSingletonSelectors term = sels0 (sels0,tcss0) = loop [] ([],[]) term loop path st (R record) = List.foldl' (\st (index,term) -> loop (index:path) st term) st (zip [0..] record) - loop path st (RP t _) = loop path st t + loop path st (RP _ t) = loop path st t loop path (sels,tcss) (C i) = ( sels,map ((,) path) [0..i-1] : tcss) loop path (sels,tcss) (S _) = (mkSelector [path] tcss0 : sels, tcss) |
