diff --git a/src/GF/Canon/CanonToGFCC.hs b/src/GF/Canon/CanonToGFCC.hs index 3898180c1..280094023 100644 --- a/src/GF/Canon/CanonToGFCC.hs +++ b/src/GF/Canon/CanonToGFCC.hs @@ -96,7 +96,7 @@ mkCType t = case t of TStr -> C.S [] where getI pt = case pt of - C.C i -> i + C.C i -> i + 1 C.RP i _ -> getI i mkTerm :: Term -> C.Term @@ -268,7 +268,7 @@ type2type cgr env@(labels,untyps,typs) ty = case ty of _ -> ty where t2t = type2type cgr env - look ty = TInts $ toInteger $ case Map.lookup ty typs of + look ty = TInts $ (+ (-1)) $ toInteger $ case Map.lookup ty typs of Just vs -> length $ Map.assocs vs _ -> trace ("unknown partype " ++ show ty) 1 ---- 66669 diff --git a/src/GF/Conversion/SimpleToFCFG.hs b/src/GF/Conversion/SimpleToFCFG.hs index 79eea13bd..75aae1907 100644 --- a/src/GF/Conversion/SimpleToFCFG.hs +++ b/src/GF/Conversion/SimpleToFCFG.hs @@ -212,7 +212,7 @@ unifyPType nr path (C max_index) = let (FCat _ _ _ tcs,_) = args !! nr case lookup path tcs of Just index -> return index - Nothing -> do index <- member [0..max_index-1] + Nothing -> do index <- member [0..max_index] restrictArg nr path index return index unifyPType nr path (RP alias _) = unifyPType nr path alias @@ -306,7 +306,7 @@ genFCatArg ctype env@(FRulesEnv last_id fcatSet rules) m1@(FCat _ cat rcs tcs) = case List.lookup path tcs of Just index -> return $! addConstraint path index acc Nothing -> do writeState True - index <- member [0..max_index-1] + index <- member [0..max_index] return $! addConstraint path index acc where addConstraint path0 index0 (c@(path,index) : cs)