summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbjorn <bjorn@bringert.net>2008-01-30 17:18:27 +0000
committerbjorn <bjorn@bringert.net>2008-01-30 17:18:27 +0000
commitc6137229ebb66b0a299b3ff09bd6fabf01444884 (patch)
treedc190f49bab8fc376f8277bec33c57de882e2819 /src
parent76bfc8e98d999517c18d6e54ee452a42a6c808cc (diff)
Standard format for floats and strings in GFCC.
Diffstat (limited to 'src')
-rw-r--r--src/GF/GFCC/Raw/ParGFCCRaw.hs2
-rw-r--r--src/GF/GFCC/Raw/PrintGFCCRaw.hs5
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