From 77178cd2abf6774397259af547aec75ac07be26d Mon Sep 17 00:00:00 2001 From: aarne Date: Sat, 24 May 2008 07:44:16 +0000 Subject: sort records so that s field is first (use Macros.sortRec) --- src-3.0/GF/Grammar/Macros.hs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src-3.0/GF/Grammar') 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 + + + -- cgit v1.2.3