From c6137229ebb66b0a299b3ff09bd6fabf01444884 Mon Sep 17 00:00:00 2001 From: bjorn Date: Wed, 30 Jan 2008 17:18:27 +0000 Subject: [PATCH] Standard format for floats and strings in GFCC. --- src/GF/GFCC/Raw/ParGFCCRaw.hs | 2 -- src/GF/GFCC/Raw/PrintGFCCRaw.hs | 5 ++--- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/src/GF/GFCC/Raw/ParGFCCRaw.hs b/src/GF/GFCC/Raw/ParGFCCRaw.hs index 06ed83c04..051358211 100644 --- a/src/GF/GFCC/Raw/ParGFCCRaw.hs +++ b/src/GF/GFCC/Raw/ParGFCCRaw.hs @@ -21,9 +21,7 @@ pTerm n = skipSpaces >> (pParen <++ pApp <++ pNum <++ pStr <++ pMeta) where pParen = between (char '(') (char ')') (pTerm 0) pApp = liftM2 App pIdent (if n == 0 then pTerms else return []) pStr = char '"' >> liftM AStr (manyTill (pEsc <++ get) (char '"')) - -- FIXME: what escapes are used? pEsc = char '\\' >> get - -- FIXME: what formats? pNum = do x <- munch1 isDigit ((char '.' >> munch1 isDigit >>= \y -> return (AFlt (read (x++"."++y)))) <++ diff --git a/src/GF/GFCC/Raw/PrintGFCCRaw.hs b/src/GF/GFCC/Raw/PrintGFCCRaw.hs index 45ca6b9cb..d46d8096f 100644 --- a/src/GF/GFCC/Raw/PrintGFCCRaw.hs +++ b/src/GF/GFCC/Raw/PrintGFCCRaw.hs @@ -3,6 +3,7 @@ module GF.GFCC.Raw.PrintGFCCRaw (printTree) where import GF.GFCC.Raw.AbsGFCCRaw import Data.List (intersperse) +import Numeric (showFFloat) printTree :: Grammar -> String printTree g = prGrammar g "" @@ -16,15 +17,13 @@ prRExp n (App x xs) = p (prCId x . showChar ' ' . prRExpList xs) where p s = if n == 0 then s else showChar '(' . s . showChar ')' prRExp _ (AInt x) = shows x prRExp _ (AStr x) = showChar '"' . concatS (map mkEsc x) . showChar '"' -prRExp _ (AFlt x) = shows x -- FIXME: simpler format +prRExp _ (AFlt x) = showFFloat Nothing x prRExp _ AMet = showChar '?' mkEsc :: Char -> ShowS mkEsc s = case s of '"' -> showString "\\\"" '\\' -> showString "\\\\" - '\n' -> showString "\\n" - '\t' -> showString "\\t" _ -> showChar s prRExpList :: [RExp] -> ShowS