diff options
Diffstat (limited to 'src-3.0/GF/Grammar')
| -rw-r--r-- | src-3.0/GF/Grammar/Macros.hs | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src-3.0/GF/Grammar/Macros.hs b/src-3.0/GF/Grammar/Macros.hs index f6543ea6c..be03c02a7 100644 --- a/src-3.0/GF/Grammar/Macros.hs +++ b/src-3.0/GF/Grammar/Macros.hs @@ -28,6 +28,7 @@ import GF.Grammar.PrGrammar import Control.Monad (liftM, liftM2) import Data.Char (isDigit) +import Data.List (sortBy) firstTypeForm :: Type -> Err (Context, Type) firstTypeForm t = case t of @@ -719,3 +720,14 @@ isInOneType t = case t of Prod _ a b -> a == b _ -> False +-- normalize records and record types; put s first + +sortRec :: [(Label,a)] -> [(Label,a)] +sortRec = sortBy ordLabel where + ordLabel (r1,_) (r2,_) = case (prt r1, prt r2) of + ("s",_) -> LT + (_,"s") -> GT + (s1,s2) -> compare s1 s2 + + + |
